CentOS7 網路相關整理
可先透過 https://wiki.centos.org/zh-tw/FAQ/CentOS7 來了解 CentOS7 和之前版本的一些差異
沒有 ifconfig 命令問題
yum install net-tools
FirewallD (取代 iptables)
- 取得 zome
firewall-cmd --get-default-zone
- 查看目前開放的服務
firewall-cmd --zone=iredmail --list-services
- 新增臨時開放的服務
firewall-cmd --zone=iredmail --add-service=mysql
- 查看永久開放的服務
firewall-cmd --zone=iredmail --permanent --list-services
- 新增永久開放的服務
firewall-cmd --zone=iredmail --permanent --add-service=snmp
- 如果是直接修改 /etc/firewalld/services/ 或 /etc/firewalld/zones/ 裡面的設定檔
- Exp. /etc/firewalld/services/smtps.xml 與 /etc/firewalld/zones/iredmail.xml
- 更改後可以透過
firewall-cmd --complete-reload
讓設定生效
- 啟用與關閉 firewalld
[root@jonathan-vm1 ~]# firewall-cmd --get-default-zone FirewallD is not running [root@jonathan-vm1 ~]# systemctl start firewalld [root@jonathan-vm1 ~]# systemctl enable firewalld Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service. Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service. [root@jonathan-vm1 ~]# firewall-cmd --get-default-zone public [root@jonathan-vm1 ~]# firewall-cmd --list-services cockpit dhcpv6-client ssh [root@jonathan-vm1 ~]# systemctl stop firewalld [root@jonathan-vm1 ~]# systemctl disable firewalld Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. Removed /etc/systemd/system/multi-user.target.wants/firewalld.service. [root@jonathan-vm1 ~]# systemctl list-unit-files | grep firewalld firewalld.service disabled
netstat 的替代語法 ss
- 看 listen port :
ss -l -n
Exp. 看 SMTP 25 port
# ss -l -n | grep 25 tcp LISTEN 0 100 *:25 *:* tcp LISTEN 0 100 :::25 :::*
- 看 TCP 連線 :
ss -t -n
Exp. 看 IMAP port 143 連線
# ss -t -n | grep 143 ESTAB 0 0 192.168.0.236:143 60.248.245.172:56450 ESTAB 0 0 192.168.0.236:143 192.168.0.2:51137 ESTAB 0 0 192.168.0.236:143 192.168.0.254:14983 ESTAB 0 0 192.168.0.236:143 192.168.0.254:14902 : ESTAB 0 0 192.168.0.236:143 60.248.245.172:62832
修改 IP 設定
- Exp 修改 eth0 IP 為 192.168.1.28
- vi /etc/sysconfig/network-scripts/ifcfg-eth0
: BOOTPROTO=static IPADDR=192.168.1.28 NETMASK=255.255.255.0 GATEWAY=192.168.1.254 : DNS1=192.168.1.254 DNS2=101.101.101.101
systemctl restart network.service
查看現在的 IP 與 route
ip a ip route list
修改 DNS 設定
- 直接改 /etc/resolv.conf 一段時間就會被 NetworkManager 更改消失, 必須改使用 nmcli 來設定
- Exp. 要設定網卡 eth0 的 DNS 為 192.168.11.242 與 168.95.192.1
nmcli con mod eth0 ipv4.dns "192.168.11.242 168.95.192.1" nmcli con up eth0
關閉 IPv6 的方式
- 因為很多服務會認來源 IP (Exp. Mail Server), 因此避免來源 IP 變成 IPv6 造成問題, 因此有需要關閉
- 在 /etc/sysctl.conf 內增加以下兩行
: net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
- 下命令生效
sysctl -p
- 最好重開機