$ dhclient ethN
当然,也可以考虑采用静态配置的方式,
ip_address是本地主机的
IP地址,
gw_ip_address是接入网络的网关的
IP地址。
$ ifconfig eth0 ip_address on$ route add deafult gw gw_ip_address
如果上面不工作,记得通过
ifconfig/mii-tool/ethtool等工具检查网卡是否有被驱动起来,然后通过
lspci/dmesg等检查网卡类型(或者通过主板手册和独立网卡自带的手册查看),接着安装或者编译相关驱动,最后把驱动通过
insmod/modprobe等工具加载到内核中。
网桥工作在
OSI模型的第二层,即数据链路层,它只需要知道目标主机的
MAC地址就可以工作。 Linux 内核在
2.2开始就已经支持了这个功能,具体怎么配置看看后续参考资料吧。如果要把 Linux 主机配置成一个网桥,至少需要两个网卡。
网桥的作用相当于一根网线,用户无须关心里头有什么东西,把它的两个网口连接到两个主机上就可以让这两个主机支持相互通信。不过它比网线更厉害,如果配上防火墙,就可以隔离连接在它两端的网段(注意这里是网络,因为它不识别
IP),另外,如果这个网桥有多个网口,那么可以实现一个功能复杂的交换机,而如果有效组合多个网桥,则有可能实现一个复杂的可实现流量控制和负载平衡的防火墙系统。
路由工作在
OSI模型的第三层,即网络层,通过
router可以配置 Linux 的路由,当然,Linux 下也有很多工具支持动态路由的。相关的资料在网路中铺天盖地,由于时间关系,这里不做介绍。
需要什么网络服务呢?
给局域网弄个
DHCP服务器,那就弄个
dhcpd,看看参考资料;
如果想弄个邮件发送服务器,那就安装个
sendmail或者
exim4;
如果再想弄个邮件列表服务器呢,那就装个
mailman;
如果想弄个接收邮件的服务器呢,那就安装个
pop3服务器;
如果想弄个
web站点,那就弄个
apache或者
nginx服务器;
如果想弄上防火墙服务,那么通过
iptables工具配置
netfilter就可以
What's more?如果你能想到,Linux上基本都有相应的实现。
如果出现网络问题,不要惊慌,逐步检查网络的各个层次:物理链接、链路层、网络层直到应用层,熟悉使用各种如下的工具,包括
ethereal/tcpdump,
hping,
nmap,
netstat,
netpipe,
netperf,
vnstat,
ntop等。
关于这些工具的详细用法和网络问题诊断和维护的相关知识,请看后续相关资料。
如果想做网络编程开发,比如:
要实现一个客户端
/服务器架构的应用,可以采用 Linux 下的
socket编程了;
如果想写一个数据包抓获和协议分析的程序,可以采用
libpap等函数库;
如果想实现某个协议呢,那就可以参考相关的
RFC文档,并通过
socket编程来实现。
这个可以参考相关的
Linux socket编程等资料。
本来介绍网络相关的一些基本内容,但因时间关系,没有详述,更多细节请参考相关资料。
到这里,整个《Shell编程范例》算是很粗略地完成了,不过“范例”却缺少实例,特别是这一节。因此,如果时间允许,会逐步补充一些实例。
计算机网络——自上而下的分析方法
Linux 网络体系结构(清华大学出版社出版)
Linux 系统故障诊断与排除 第13章 网络问题(人民邮电出版社)
在 Linux 下用 ADSL 拨号上网
Linux 下无线网络相关资料收集
Linux网桥的实现分析与使用
DHCP mini howto
最佳的 75 个安全工具
网络管理员必须掌握的知识
Linux 上检测 rootkit 的两种工具: Rootkit Hunter 和 Chkrootkit
数据包抓获与 ip 协议的简单分析(基于 pcap 库)
RFC
HTTP 协议的 C 语言编程实现实例