前言:
前面学习了对linux的基本的操作,比如用户与用户组的管理、文件权限管理、文件查找、压缩与解压文件、环境变量的配置、管道以及常见的linux资源管理(如进程,时间,资源管理),通过不断的练习以及网上查找相关资料进行阅读,基本上掌握以上的操作,但是(又是这个可恨的但是)前面的学习只是满足操作一个不连接互联网的linux系统,接下来学习一些常用的网络管理命令。
1.ifconfig命令:
Linux下ifconfig命令可以查看/使能/禁用网卡,修改IP地址、MAC地址、子网掩码等:
查看使能的网卡:
- [user1@xianzan dir]$ ifconfig
- [user1@xianzan dir]$ ifconfig -a
- [user1@xianzan dir]$ sudo ifconfig eth0 up
- [user1@xianzan dir]$ sudo ifconfig eth0 down
- [user1@xianzan dir]$ sudo ifconfig eth0 192.168.1.110
- [user1@xianzan dir]$ ifconfig
- eth0 Link encap:Ethernet HWaddr 00:0C:29:F0:3E:B4
- inet addr:192.168.1.110 Bcast:192.168.1.255 Mask:255.255.255.0
- [user1@xianzan dir]$ sudo ifconfig eth0:1 192.168.1.120
- [user1@xianzan dir]$ ifconfig
- eth0 Link encap:Ethernet HWaddr 00:0C:29:F0:3E:B4
- inet addr:192.168.1.110 Bcast:192.168.1.255 Mask:255.255.255.0
- eth0:1 Link encap:Ethernet HWaddr 00:0C:29:F0:3E:B4
- inet addr:192.168.1.120 Bcast:192.168.1.255 Mask:255.255.255.0
- [user1@xianzan dir]$ sudo ifconfig eth0 192.168.111 netmask 255.255.255.255
- [user1@xianzan dir]$ ifconfig
- eth0 Link encap:Ethernet HWaddr 00:0C:29:F0:3E:B4
- inet addr:192.168.0.111 Bcast:192.168.0.111 Mask:255.255.255.255
- [user1@xianzan dir]$ sudo ifconfig eth0 down
- [user1@xianzan dir]$ sudo ifconfig eth0 hw ether 00:0C:29:F0:3E:BB
- [user1@xianzan dir]$ sudo ifconfig eth0 up
- [user1@xianzan dir]$ ifconfig
- eth0 Link encap:Ethernet HWaddr 00:0C:29:F0:3E:BB
注意:
设置网卡的MAC地址的时候要先禁用网卡。
2.route命令:
Linux下route命令可以查看、添加、删除网关:
- [user1@xianzan dir]$ sudo route
- Kernel IP routing table
- Destination Gateway Genmask Flags Metric Ref Use Iface
- 192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0
- [user1@xianzan dir]$ sudo route -n
- Kernel IP routing table
- Destination Gateway Genmask Flags Metric Ref Use Iface
- 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
说明:
route -n对于默认网关以数字形式显示。
添加默认路由:
- [user1@xianzan dir]$ sudo route add default gw 192.168.1.1
- [user1@xianzan dir]$ route -n
- Kernel IP routing table
- Destination Gateway Genmask Flags Metric Ref Use Iface
- 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
- 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
- 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
- [user1@xianzan dir]$ sudo route del default
设置永久生效的方法是修改配置文件:
在
/etc/rc.local里添加:
- [user1@xianzan dir]$ sudo vim /etc/rc.local
3.ping命令:
Linux下ping命令可以诊断网络连接情况:
- [user1@xianzan dir]$ ping 192.168.1.110
- PING 192.168.1.110 (192.168.1.110) 56(84) bytes of data.
- 64 bytes from 192.168.1.110: icmp_seq=1 ttl=64 time=9.58 ms
- 64 bytes from 192.168.1.110: icmp_seq=2 ttl=64 time=0.058 ms
- [user1@xianzan dir]$ sudo ping -c 1 -s 1 4.2.2.2 -I eth0
说明:
-c:ping的次数;
-s:指定字节数;
-I:知道网卡。
4.ip命令:
Linux下的IP命令包含了ifconfig和route命令的所有功能,提供更加强大的网络管理:
- [user1@xianzan dir]$ sudo ip link set dev eth0 up/down
- [user1@xianzan dir]$ sudo ip link set dev eth0 address 00:01:4f:00:15:f1
- [user1@xianzan dir]$ sudo ip addr add 192.168.3.2/24 brd + dev eth0 labeleth0:1
- [user1@xianzan dir]$ sudo ip address show
- [user1@xianzan dir]$ sudo ip addr del 192.168.3.2/24 brd + dev eth0 labeleth0:1
- [user1@xianzan dir]$ sudo ip route show[user1@xianzan dir]$ sudo ip route del default
- [user1@xianzan dir]$ sudo ip route add default via 192.168.2.1
5.Linux网络配置文件:
上述直接用命令对网络进行配置后只是当前系统临时生效,系统重启后配置将会丢失。如果想让这些配置保存下来,则需要保存到系统的相应网卡配置文件中去。Linux网卡配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0:
- [user1@xianzan dir]$ sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0
- [user1@xianzan dir]$ vim /etc/resolv.conf
6.Linux网络监控netstat命令:
netstat这个命令常用在网络监控方面。利用这个命令,可以查看当前系统监听的服务和已经建立的服务,以及相应的端口、协议等信息。netstat参数虽然很多,但是常用的不多。主要有以下几个参数:netstat -[atunlp]
-a :all,表示列出所有的连接,服务监听,Socket资料-t : tcp,列出tcp协议的服务-u :udp,列出udp协议的服务-n :port number, 用端口号来显示-l : listening,列出当前监听服务-p :program,列出服务程序的PID
- [user1@xianzan dir]$ sudo netstat -tlp
- Active Internet connections (only servers)
- Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
- tcp 0 0 *:sunrpc *:*
7.Linux网络防火墙iptables:
防火墙是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种。无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP、数据进行检测。
防火墙服务关闭:
- [user1@xianzan dir]$ sudo service iptables stop
- iptables:将链设置为政策 ACCEPT:filter [确定]
- iptables:清除防火墙规则: [确定]
- iptables:正在卸载模块: [确定]
- [user1@xianzan dir]$ sudo service iptables start
- iptables:应用防火墙规则: [确定]
- [user1@xianzan dir]$ sudo iptables -L
- [user1@xianzan dir]$ sudo iptables -F
- [user1@xianzan dir]$ sudo iptables -X
- [user1@xianzan dir]$ sudo iptables -Z
允许数据输出:
- [user1@xianzan dir]$ sudo iptables -P OUTPUT ACCEPT
通过网卡的数据输入丢掉:
DROP:丢掉数据包。
- <span style="font-size:14px;"></span><pre name="code" class="plain"><span style="font-size:14px;">[user1@xianzan dir]</span>$ sudo iptables -P INPUT DROP<span style="font-size:14px;"><span style="font-family: Arial, Helvetica, sans-serif;"> </span></span>
修改防火墙策略:
- <span style="font-size:14px;"></span><pre name="code" class="plain"><span style="font-size:14px;">[user1@xianzan dir]</span>$ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
-A: 添加防火墙规则 -p:TCP协议 --d:指定端口 -j:表示设置策略
这样设置的效果为:启动对应的tcp协议的22端口打开,SSH远程连接软件可以连接到你的服务主机。
同理,防火墙接收http协议的80端口数据:
- <span style="font-size:14px;"></span><pre name="code" class="plain"><span style="font-size:14px;">[user1@xianzan dir]</span>$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
- <span style="font-size:14px;"></span><pre name="code" class="plain"><span style="font-size:14px;">[user1@xianzan dir]</span>$ sudo iptables -A INPUT -p icmp -j ACCEPT
- <span style="font-size:14px;"></span><pre name="code" class="plain"><span style="font-size:14px;">[user1@xianzan dir]</span>$ sudo service iptables save