Linux网络管理
ifconfig
ifconfig查看匹配IP
route 管理路由
netstat 端口状态及统计数据查看
ifconfig
ifconfig 查看IP ifconfig eth_name 指定查看网卡 ifconfig eth_name up 启用网卡 ifconfig eth_name dome 关闭网卡 配置IP例: ifconfig eth1 192.168.10.10 netmask 255.255.255.0 up
route
添加路由语法: route add [-net|-host] target [netmask NM] [gw GW] [dev] 例: route add -net 192.168.0.0/24 gw 192.168.0.1 eth1 删除路由语法: route del target [gw GW] [netmask Nm] [dev] 例: route del -net 192.168.1.0/24 gw 192.168.1.1 route del default
netstat
显示路由相关:
netstat -rn -r: 显示路由内核路由表 -n: 数字格式显示
显示网络连接数:
netstat [--tcp|-t] [--udp|-u] -t: 显示tcp相关连接 -u: 显示udp相关连接 -w: 裸套接字 socket相关连接 -l: 处于监听状态的相关连接 -a: 所有状态 -n: 以数字格式显示IP和PORT -e: 扩展格式 -p: 显示相关的进程及PID 常用组合: -lautp -tan -uan -unl -tn
显示接口统计数组
netstat -Ieth0 指定接口 netstat -i 所有接口
ifup/ifdown
开启或关闭端口
ifup eth1 ifdown eth1
ethtools
多网卡情况面可确定网卡位置.
ethtools -p ETH_Name
iproute2家族
ip命令
设备属性相关:
ip link set 设置设备属性 ip link show 查看设备属性 ip link set dev eth1 down: 禁用网卡. ip link set dev eth1 up: 启用网卡. multlcast on | multlcast off: 启用或者禁用多播. name: 重命名. mtu 设置mtu大小.
ip地址相关
ip addr show 查看ip ip addr list 查看ip 添加IP地址: ip addr add 192.168.0.1/24 dev eth1 ip addr add 10.0.0.10/8 dev eth1 label eth1:0 (添加别名) 删除IP: ip addr del 10.0.0.10/8 eth1 清空地址: ip addr flush dev eth1
路由相关
1) 查看路由: ip route list 2) 添加路由 ip route add 10.0.0.0/24 dev eth1 ip route add 192.168.0.0/24 via 10.0.0.1 dev eth1 下一跳 ip route add 192.168.1.0/24 via 10.0.0.1 dev eth1 src 10.0.20.100 via: 网关下一跳. dev: 设备. src: 源ip地址. 3) 删除路由 ip rout del 192.168.1.0/24 4) 清空路由表 ip route flush dev eth1
ss
语法: ss [options] [FILTER] 选项: -t: TCP/IP协议协议链接. -u: UDP协议链接. -w: 裸套接字 socket 相关链接. -l: 监听状态的链接. -a: 显示所有状态的链接. -n: 数字格式. -p: 显示相关的程序及其PID. -e: 扩展格式信息. -m: 内存使用量. -o: 计时器信息. 常用组合: -tnl -tpnl -tn
ss高级用法
FILTER := [ state TCP-STATE ] [ EXPRESSION ] EXPRESSION: dport= 目标端口 sport= 源端口 示例: '( dport = :22 or sport = :22 )' ss -tnl state ESTABLISHED ss -l 显示本地打开的所有端口 ss -pl 显示每个进程具体打开的socket ss -t -a 显示所有tcp socket ss -u -a 显示所有的UDP Socekt ss -o state established '( dport = :smtp or sport = :smtp )' 显示所有已建立的SMTP连接 ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接 ss -x src /tmp/.X11-unix/* 找出所有连接X服务器的进程 ss -s 列出当前socket详细信息
本章练习题
1. 关闭或启动网卡使用两种命令完成 2. ip 命令查看网卡属性。 3. 使用 iprout2 命令给eth0 添加一个网关。在删除并默写清空路由表命令 4. 使用 ss 命令查看当前建立连接的http协议。 5. 使用ss命令查看监听状态的tcp启动的服务并查看器端口号 6. 默写tcp 的11种状态 closed listen syn_rcvd syn_sent established FIN_WAIT_1 FIN_WAIT_2 TIME_WAIT CLOSING CLOSE_WAIT LAST_ACK 7. TCP三次握手 8. 四次挥手 TCP报文格式详解 https://www.cnblogs.com/feng9exe/p/8058891.html HTTP报文格式详解 https://www.cnblogs.com/wolfshining/p/8670219.html https://blog.csdn.net/zx_emily/article/details/83024065
答案
1. 关闭或启动网卡 ifup eth0 ifdown eth0 2. ip 命令查看网卡属性。 ip link show 3. 使用 iprout2 命令给eth0 添加一个网关。在删除并默写清空路由表命令 ip route add 192.168.0.0/24 via 192.168.0.1 dev eth0 ip route del 192.168.0./24 ip route flash dev eth0 4. 使用 ss 命令查看当前建立连接的http协议。 ss -o state established '( dport = :http or sport = :http )' 5. 使用ss命令查看监听状态的tcp启动的服务并查看器端口号 ss -tnlp 6. 默写tcp 的11种状态 closed 关闭状态 listen 监听状态,可接受客户端的连接 syn_rcvd 服务端接收到客户端的SYN报文请求。很难监听到 syn_sent 与上个状态相呼应,客户端等待服务端的发送三次握手的第二个报文。表示客户端已经发送报文 established 建立tcp连接 FIN_WAIT_1 表示等待FIN报文,主动关闭连接进入此状态等待ACK报文,此状态很难监听到。 FIN_WAIT_2 对方回应ACK报文进入此状态,等待对方关闭完成四次握手过程。 TIME_WAIT 主动关闭连接会进入TIME_WAIT状态,可会断会发送最后一个ACK即四次挥手,就会进入TIME_WAIT状态,停留2MSL就会进入CLOSED状态。 CLOSING 双方同时出现发出了FIN报文就会出现CLOSING状态,表示双方都在关闭SOCKET连接。 CLOSE_WAIT 表示等待关闭,接收到一个FIN报文后回应一个ACK报文给对方,此时进入此状态,检查是否还有没有数据给对方,没有则发送FIN报文给对方,即关闭自己到对方的连接,如果有数据具体看程序。 LAST_ACK 当发送了FIN报文后等待对方的ACK报文就会处于此状态受到了ACK报文后,就会进入CLOSED关闭状态。 7. TCP三次握手 1) 连理连接 客户端发送syn(SYN表示请求建立连接)包(SYN=1)到服务器并进入 SYN_SEND状态等待服务器确认。 2) 服务器受到SYN包,必须确认客户端的SYN发送ACK(表示接受去人)包(ACK=1),并发送自己的SYN包(syn=1),此时服务器进入SYN_RECV状态。 3) 客户端受到服务器的SYN+ACK包,向服务器发送确认包。ACK(ACK=1),此包发送完毕客户端和服务端进入ESTABLISHED状态完成三次握手。 8. 四次挥手 1) 客户端发送FIN(希望中断连接)包(FIN=1)此时seq=u,(等于前面已经发送过来的数据最后一个字节的序号加1)此时客户端进入FIN_WAIT_1(终止等待1)状态 2) 客户端收到FIN包,发出确认报文ACK=1,ACK=u+1 并且带上自己的序列号seq=v ,此时服务器进入 CLOSE_WAIT状态(等待关闭).此时服务器tcp会通知应用程序,客户端向服务器方向的通信释放,但服务器如果向客户端发送数据客户端依然可以接受,此时处于半监听状态,CLOSE_WAIT状态会持续一段时间。 3) 客户端收到服务器的确认请求之后,此时客户端进入FIN_WAIT_2(等待终止2) 等待服务器发送释放报文,(此时客户端还需接受服务器发送的最后数据) 4) 服务器将数据发送完毕之后,向客户端发送释放报文,FIN=1 ack=u+1 由于半关闭状态有可能发送了数据此时seq=w ,此时服务器进入 LAST_ACK(最后确认)状态。等待客户端确认。 5) 客户端收到服务端的释放报文后,必须发送 ACK=1 ,ack=w+1 ,而自己的序列号为seq=u+1 此时客户端进入TIME_WAIT(时间等待)状态。此时TCP连接没有完全释放,经过2MSL最长报文段寿命后,才会进入CLOSED状态。 6) 服务器收到客户端发出的确认,立即进入CLOSED状态。 TCP报文格式详解 https://www.cnblogs.com/feng9exe/p/8058891.html HTTP报文格式详解 https://www.cnblogs.com/wolfshining/p/8670219.html https://blog.csdn.net/zx_emily/article/details/83024065
作者:闫世成
出处:http://cnblogs.com/yanshicheng
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。如有问题或建议,请联系上述邮箱,非常感谢。