Linux网络相关知识
2019獨角獸企業重金招聘Python工程師標準>>>
10月25日任務
10.11 Linux網絡相關
10.12 firewalld和netfilter
10.13 netfilter5表5鏈介紹
10.14 iptables語法
?
Linux網絡相關命令
查看網卡信息:ifconfig
安裝:yum install -y net-tools
[root@centos7 ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.65.130 netmask 255.255.255.0 broadcast 192.168.65.255...lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0...手動啟動/關閉特定網卡
ifup/ifdown ens33
設置虛擬網卡
在物理機測試ping可通,證明配置成功
C:\Users\18367>ping 192.168.65.143正在 Ping 192.168.65.143 具有 32 字節的數據: 來自 192.168.65.143 的回復: 字節=32 時間<1ms TTL=64 來自 192.168.65.143 的回復: 字節=32 時間<1ms TTL=64 來自 192.168.65.143 的回復: 字節=32 時間<1ms TTL=64 來自 192.168.65.143 的回復: 字節=32 時間<1ms TTL=64192.168.65.143 的 Ping 統計信息:數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失), 往返行程的估計時間(以毫秒為單位):最短 = 0ms,最長 = 0ms,平均 = 0ms查看網卡是否連接
mii-tool | ethtool
1. 可以使用mii-tool命令查看 [root@centos7 network-scripts]# mii-tool ens33 ens33: negotiated 1000baseT-FD flow-control, link ok2. 也可以使用ethtool命令查看 [root@centos7 network-scripts]# ethtool ens33 | tail -n 1Link detected: yes更改主機名
下列命令只支持centos7.x
hostnamectl set-hostname HOST
上列的命令在當前終端下并不會立即生效,需要重啟!
在/etc/hostname文件中可以查看系統主機的hostname。
主機host的配置文件為/etc/hosts,修改其內容只在本機生效!
若存在多個ip指向同一個域名,只有最后一行的ip生效!即后面設置的同域名的ip將覆蓋前面的ip!
此外同一個ip可以指向多個域名,在hosts文件內可以寫在一行內即
192.168.1.110 www.123.com www.qq.com www.baidu.com
修改hosts文件,指定2個ip指向同一個域名 [root@centos7 network-scripts]# vim /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.25 www.baidu.com 192.168.1.35 www.baidu.com ~上述配置之后只有后一個ip192.168.1.35生效;同樣的指向同一個域名的多個ip,只有最后一個ip生效
[root@centos7 network-scripts]# ping www.baidu.com PING www.a.shifen.com (192.168.1.35) 56(84) bytes of data. 64 bytes from 192.168.1.35 (192.168.1.35): icmp_seq=1 ttl=128 time=29.6 ms ..../etc/resolv.conf文件存放系統的DNS,該DNS由網卡的配置文件中的DNS列定義產生。
netfilter(6.x) / firewalld(7.x)
selinux的關閉
配置時必須關閉selinux,否則防火墻無法正常運行
- 臨時關閉:?setenforce 0
- 永久關閉: 修改/etc/selinux/config文件 ->?SELINUX=disabled
- 查看:getenforce
啟動iptables服務
netfilter 5表5鏈
!centos6中只有4個表(沒有security);7.x版本有5個表(及其使用的鏈),如下:
- filter(多用于過濾包)
- INPUT
- FORWARD
- OUTPUT
- nat(用于網絡地址轉換)
- PREROUTING
- OUTPUT
- POSTROUTING
- mangle(標記數據包)
- raw(不追蹤某些數據包)
- security(用于MAC的網絡規則)
相關的有5個鏈
- PREROUTING
- INPUT
- OUTPUT
- FORWARD
- POSTROUTING
數據經過本機 PREROUTING -> FORWARD -> POSTROUTING
數據不經過本機 PREROUTING -> INPUT -> OUTPUT -> POSTROUTING
工作中主要使用的是filter和nat表,后3個表使用不多
iptables詳解?http://www.cnblogs.com/metoy/p/4320813.html
iptables語法
iptables默認規則配置文件?/etc/sysconfig/iptables
- 查看規則:?iptables -nvL
- 清空規則:?iptables -F
- 執行后默認的規則表并不會清空,需要執行service iptables save存操作
- 指定表(默認為filter):iptables -t nat
- 清空計數器(清空規則記錄的數據量):iptables -Z
命令參數
- -A 在所選鏈的最后添加一或多條規則
- -I 在所選鏈的第一個規則前插入規則;加規則序號,在指定規則前插入
- -D 刪除所選鏈中的規則(也可以是規則序號)
- -R 替換所選鏈中的規則
- -L 列出所選鏈中的所有規則
- -S 打印所選鏈的所有規則,默認打印所有鏈的規則
- -F 清空所選鏈的規則
- -p 指定規則的協議tcp/udp...
- -s 指定源地址
- -d 指定目標地址
- -j 指定規則的目標 DROP/REJECT/ACCEPT
- -i 指定網卡
- --sport/dport 指定源/目的端口
在INPUT鏈的最后追加一條規則
[root@localhost network-scripts]# iptables -A INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP不指定目標ip,默認代表所有
# 在首行插入規則 [root@localhost network-scripts]# iptables -I INPUT -s 1.1.1.1 -j DROP # 在末行添加規則 [root@localhost network-scripts]# iptables -A INPUT -s 1.1.1.1 -j DROP # 刪除某條規則(對應添加時的規則) [root@localhost network-scripts]# iptables -D INPUT -s 1.1.1.1 -j DROP設置關于特定的網卡的規則
# -i指定網卡 [root@localhost network-scripts]# iptables -I INPUT -s 192.168.1.0/24 -i ens33 -j ACCEPT根據規則編號刪除規則
[root@localhost network-scripts]# iptables -nvL --line-number Chain INPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 184 13824 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 3 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 4 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 6 468 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibitedChain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibitedChain OUTPUT (policy ACCEPT 141 packets, 10976 bytes) num pkts bytes target prot opt in out source destination # 刪除第一條 [root@localhost network-scripts]# iptables -D INPUT 1設置指定鏈的默認策略
# 默認INPUT的策略為ACCEPT [root@localhost network-scripts]# iptables -P INPUT DROP # 這里需要注意的是,一旦修改默認策略為DROP,你的ssh通信的數據包將被丟棄,無法遠程連接,只能連物理機修改!所以最好不要亂修改,保持默認即可!轉載于:https://my.oschina.net/u/3964535/blog/2252204
總結
以上是生活随笔為你收集整理的Linux网络相关知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python全栈开发笔记---基本数据类
- 下一篇: Oracle Hint 之 Parall