最近对linux中的网络问题很感兴趣,现在将一些心得一一记录如下:
- 不同的linux版本都有不同的网络设置方法。但最基本的就是利用ifconfig来设计以太网接口,iwconfig设置无线网络接口。
- 一个正确的以太网接口eth0需要以下信息:ip,netmask,broadcast,gateway, DNS。 另外还必须指明hostname。
- 防火墙实际上是在网卡上filter进出系统的TCP/IP包,只有符合要求的包才能被放行。更多的情况下,一般是要防止外来系统流入本地系统的TCP/IP包。
- Linux系统中的TCP_wrapper可以看做是一个简单的firewall,它的基本作用是限制外来连接和本地程序通信。最简单的用法是限制只有某一范围内的IP才能访问某个daemon。
- 路由器的基本作用是决定如何从origin连接到destination。可以在路由器中设定,对于某些IP该如何连接,这称为静态路由。也可以由路由器决定如何连接,这是由路由算法决定的,称为动态路由。
- Nat网关。由于IPV4地址紧缺,所以可以设定一个NAT局域网,网内的computer之具有私有IP(如192.168.*.*),而NAT网关具有合法的IPV4地址。当网内的computer想外连接时,网络会记录该computer的IP和端口,然后将数据从某一特定端口发出。当外网有数据返回时,NAT网关根据之前的记录,再将数据返回给内网的computer。需要注意的是,只有当内网机器首先发起连接,外网的数据才能通过NAT网关连接到内网的机器上;如果外网首先发起连接,NAT网关无法判断该数据包该转发给内网哪台机器。
- 可以利用端口转发或者Upnp设备,使的外网能够和内网中的机器通信。使用端口转发时,NAT网关将发送到某一特定端口的信息全部转发给内网中某一特定机器。需要注意的是,这需要将该台机器的地址设定为statis IP。
- tcpdump,Nmap,netstat是了解网络状况的三大利器。tcpdump可以将某一网络设备上符合filter条件的所有包抓下来,因此在网关使用tcpdump,可以监视内网中各computer的连接情况。nmap可以扫描网络中各computer的端口开放情况。netstat可以了解本地机器的网络情况。