Linux 網路設定
- 一、查看網路
- 1、查看網路介面地址
- 2、查看更改主機名
- 3、查看路由表條目
- 4、查看網路連接情況
- netstat 命令
- ss 命令
- 二、測驗網路連接
- 1、測驗網路連通性
- 2、跟蹤資料包的路由途徑
- 3、測驗 DNS 域名決議
- nslookup命令
- dig 命令
- 三、使用網路配置命令
- 1、臨時配置和永久配置的解釋
- 2、修改網卡的地址、狀態
- 2、添加、洗掉靜態路由與默認路由記錄
- 四、修改網路組態檔
- 1、網路介面組態檔
- 2、啟用、禁用網路介面配置
- 3、域名決議組態檔
一、查看網路
1、查看網路介面地址
主機的網路介面卡(網卡)通常稱為網路介面,在 Linux 作業系統中,使用 ifconfig 命令可以查看網路介面的地址配置資訊(Interface Configuration),
注:若沒有 ifconfig 命令的,需要先通過 yum 方式安裝 net-tools 軟體包,才有 ifconfig 命令,
第一種方法查看
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.8 netmask 255.255.255.0 broadcast 192.168.10.255
inet6 fe80::8c58:4d06:fde9:2d7d prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:fe:06:f3 txqueuelen 1000 (Ethernet)
RX packets 684409 bytes 987345087 (941.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 175406 bytes 15317449 (14.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 135 bytes 12160 (11.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 135 bytes 12160 (11.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
第二種方法查看
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:fe:06:f3 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.8/24 brd 192.168.10.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::8c58:4d06:fde9:2d7d/64 scope link
- ens33:第一塊以太網卡的名稱,“ens33”中的“en”是“EtherNet”的縮寫,表示網卡型別為以太網,
- lo:“回環”網路介面,“lo”是“loopback”的縮寫,它不代表真正的網路介面,而是一個虛擬的網路介面, 其 IP 地址默認是“127.0.0.1”,回環地址通常僅用于對本機的網路測驗,
- inet:表示網路介面的 IP 地址,
- netmask:表示網路介面的子網掩碼,
- broadcast:表示網路介面所在網路的廣播地址,
- ether:表示網路介面的物理地址(MAC 地址),
- “TX”通過該網路介面發送的資料包個數、流量等,
- “RX”通過該網路介面接收的資料包個數、流量等,
2、查看更改主機名
在 Linux 作業系統中,相當一部分網路服務都會通過主機名來識別主機,如果主機名配置不當,可能會導致程式功能出現故障,使用 hostname 命令可以查看當前主機的主機名,
方法一
[root@localhost ~]# hostname //查看原來的主機名
localhost.localdomain
[root@localhost ~]# hostname www //設定新的主機名
[root@localhost ~]# hostname //確認新的主機名
www
[root@localhost ~]# bash //啟用新的Shell 會話,查看變化
[root@www ~]#hostname
www
方法二
[root@localhost ~]# vi /etc/hostname
www
通過修改/etc/hostname 來更改的主機名,如果要讓其生效,需重啟 Linux 系統,
方法三
[root@localhost ~]# hostnamectl set-hostname www //設定新的主機名
[root@localhost ~]# bash //啟用新的Shell 會話,查看變化
[root@www ~]#hostname
www
3、查看路由表條目
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
192.168.10.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.10.2 0.0.0.0 UG 100 0 0 ens33
192.168.10.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
- Destination 列對應目標網段的地址
- Gateway 列對應下一跳路由器的地址
- Iface 列對應發送資料的網路介面
- 若結合“-n”選項使用,可以將路由記錄中的地址顯示為數字形式,這可以跳過決議主機名的程序,在路由表條目較多的情況下能夠加快執行速度,
4、查看網路連接情況
netstat 命令
通過 netstat 命令可以查看當前作業系統的網路連接狀態、路由表、介面統計等資訊, 它是了解網路狀態及排除網路服務故障的有效工具,
netstat 命令常用的選項:
- -a:顯示主機中所有活動的網路連接資訊(包括監聽、非監聽狀態的服務埠),
- -n:以數字的形式顯示相關的主機地址、埠等資訊,
- -r:顯示路由表資訊,
- -l:顯示處于監聽(Listening)狀態的網路連接及埠資訊,
- -t:查看 TCP(Transmission Control Protocol,傳輸控制協議)相關的資訊,
- -u:顯示 UDP(User Datagram Protocol,用戶資料報協議)協議相關的資訊,
- -p:顯示與網路連接相關聯的行程號、行程名稱資訊(該選項需要 root 權限),
通常使用“-anpt”組合選項,以數字形式顯示當前系統中所有的 TCP 連接資訊,同時顯
示對應的行程資訊,
[root@localhost ~]# netstat -anpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1338/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1024/sshd
ss 命令
ss 命令也可以查看網路連接情況,它是 Socket Statistics 的縮寫,主要用于獲取 socket 統計資訊,它可以顯示和 netstat 命令類似的輸出內容,但 ss 的優勢在于它能夠顯示更多更詳細的有關 TCP 和連接狀態的資訊,而且比 netstat 更快速更高效,要想使用 ss 命令,首先確保 iproute 程式包已被安裝,可以通過 yum 方式進行安裝,
ss 命令常用的選項
- -h:–help 通過該選項獲取更多的使用幫助,
- -V:–version 顯示軟體的版本號,
- -t:–tcp 顯示 TCP 協議的 sockets,
- -u:–udp 顯示 UDP 協議的 sockets,
- -n:–numeric 不決議服務的名稱,如 “22” 埠不會顯示成 “ssh”,
- -l:–listening 只顯示處于監聽狀態的埠,
- -p:–processes 顯示監聽埠的行程,
- -a: --all 對 TCP 協議來說,既包含監聽的埠,也包含建立的連接,
- -r: --resolve 把 IP 解釋為域名,把埠號解釋為協議名稱,
[root@localhost ~]# ss -anpt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:111 *:* users:(("systemd",pid=1,fd=43))
LISTEN 0 5 192.168.122.1:53 *:*
- “Local Address:Port” 表示本地監聽的 IP 和埠
- “Peer Address:Port”表示遠端連接的 IP 和埠
二、測驗網路連接
用戶訪問網路服務的前提是網路連接處于正常狀態,若網路連接不穩定,甚至無法連接, 用戶則無法正常訪問網路服務,因此,當網路連接出現問題時,需要通過測驗網路連接的命令來確定故障點,
1、測驗網路連通性
使用 ping 命令可以向目標主機持續地發送測驗資料包,并顯示反饋結果,直到按 Ctrl
+C 組合鍵后中止測驗,并顯示最終統計結果,
[root@localhost ~]# ping www.baidu.com
PING www.wshifen.com (103.235.46.39) 56(84) bytes of data.
64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=1 ttl=128 time=210 ms
64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=2 ttl=128 time=210 ms
[root@localhost ~]# ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.
64 bytes from 192.168.10.1: icmp_seq=1 ttl=64 time=0.182 ms
64 bytes from 192.168.10.1: icmp_seq=2 ttl=64 time=0.355 ms
執行 ping 測驗命令時,若不能獲得從目標主機發回的反饋資料包,則表示在本機到目標主機之間存在網路連通性故障,
- 若看到“Destination Host Unreachable”的反饋資訊, 則表示目的主機不可達, 可能目標地址不存在或者主機已經關閉
- 若看到“Network is unreachable”的反饋資訊,則表示沒有可用的路由記錄(如默認網關),無法達到目標主機所在的網路,
- “Request timeout”的反饋結果,表示與目標主機間的連接超時(資料包回應緩慢或丟失),除此以外,當網路中存在影響通信程序穩定性的因素(如網卡故障、病毒或網路攻擊等)或當目標主機有嚴格的防火墻限制時,也可能收到“Request timeout”的反饋結果,
2、跟蹤資料包的路由途徑
-
若服務器上沒有 traceroute 命令,可通過 yum 方式安裝 traceroute 軟體包,traceroute 命令可以用于測驗從當前主機到目的主機之間經過了哪些網路結點,并顯示各中間結點的連接狀態(回應時間),對于無法回應的結點,連接狀態將顯示為“*”,
-
traceroute 命令能夠比 ping 命令更加準確地定位網路連接的故障點(中斷點),因此執行速度會比 ping 命令稍慢,在網路測驗與排錯程序中,通常會先使用 ping 命令測驗與目的主機的網路連接,如果發現網路連接有故障,再使用 traceroute 命令跟蹤查看是在哪個中間結點存在故障,
方法一
[root@localhost ~]# traceroute www.baidu.com
traceroute to www.baidu.com (104.193.88.123), 30 hops max, 60 byte packets
1 gateway (192.168.10.2) 0.050 ms 0.026 ms 0.023 ms
2 * * *
3 * * *
方法二
[root@localhost ~]# mtr www.baidu.com
My traceroute [v0.85]
localhost.localdomain (0.0.0.0) Mon Nov 2 10:00:17 2020
Resolver: Received error response 2. (server failure)er of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. 192.168.10.2 0.0% 19 0.2 0.4 0.2 1.2 0.0
2. 192.168.1.1 0.0% 19 1.7 1.4 1.1 1.9 0.0
3. 192.168.0.1 0.0% 18 3.2 2.1 1.4 3.2 0.2
4. 100.94.128.1 0.0% 18 56.8 16.4 2.9 103.3 26.7
5. 58.217.231.37 0.0% 18 5.0 4.9 3.0 6.9 1.0
3、測驗 DNS 域名決議
nslookup命令
- 當域名決議出現例外時,將無法使用域名的形式訪問網路中的 Web 站點、電子郵件系統等服務,nslookup 命令是用來測驗域名決議的專用工具,使用時只要指定要決議的目標域名作為引數即可,若在執行程序中提示無法找到nslookup 命令,可通過yum 安裝bind-utils 程式包的方式來解決,
[root@localhost ~]# nslookup www.caidu.com
Server: 8.8.8.8 //所使用的DNS 服務器
Address: 8.8.8.8#53
Non-authoritative answer: //DNS 決議的反饋結果
Name: www.caidu.com
Address: 45.76.29.156
- 若出現“…… no servers could be reached”的資訊,則表示不能連接到指定的DNS 服務器,
- 若出現“…… can’t find xxx.yyy.zzz: NXDOMAIN”的資訊, 則表示要查詢的域名不存在,
dig 命令
[root@localhost ~]# dig baidu.com
; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> baidu.com // dig 的版本及輸入引數
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37833
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
//以上顯示服務器回傳的資訊,status 為 NOERROR 狀態說明查詢成功
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;baidu.com. IN A
//顯示通過 A 記錄要查詢的域名
;; ANSWER SECTION:
baidu.com. 498 IN A 220.181.38.148
baidu.com. 498 IN A 39.156.69.79
//經DNS 回傳后的查詢結果
;; Query time: 41 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: 一 11月 02 10:14:31 CST 2020
;; MSG SIZE rcvd: 70
//查詢后的一些統計資訊,比如用了 41 毫秒,查詢 DNS 服務器的IP 地址,查詢的時間等等
dig 在查詢程序中,還可以指定特點的 DNS 服務器,
如果不指定 DNS 服務器,默認會使用/etc/resolve.conf 里面的地址作為 DNS 服務器,
[root@localhost ~]# dig @8.8.8.8 baidu.com
三、使用網路配置命令
1、臨時配置和永久配置的解釋
- 臨時配置:通過命令列直接修改當前正在使用的網路地址,修改后立即可以生效, 這種方式操作簡單快速、執行效率高,一般在除錯網路的程序中使用,但由于所做的修改并沒有固定地存放在靜態的檔案中,因此當重啟 network 服務或重啟主機后將會失效,
- 固定配置:通過組態檔來存放固定的各種網路地址,需要重啟 network 服務或重啟主機后才會生效,這種方式操作上相對要復雜一些,但相當于“永久配置”,一般在需要為服務器設定固定的網路地址時使用,
2、修改網卡的地址、狀態
ifconfig 網路介面名稱 IP 地址 [ netmask 子網掩碼 ]
ifconfig 網路介面名稱 IP 地址[/子網掩碼長度]
- 在對服務器網路進行除錯的程序中,有時候需要臨時在同一個網卡上使用一個新的 IP 地址,但是又不能覆寫原有 IP 地址而導致服務程式不可用,這時可以為網卡系結一個虛擬的網路介面,虛擬介面的 IP 地址和網卡原有的 IP 地址都可以正常使用,
- [root@localhost ~]# ifconfig ens33:0 192.168.10.55
- 可以根據需要添加更多的虛擬介面,如“ens33:1”“ens33:2”等,
2、添加、洗掉靜態路由與默認路由記錄
- 通過“route add”操作可以添加路由記錄,結合“-net”選項指定目標網段的地址,結合“gw” 選項指定下一跳路由器的IP地址
[root@www ~]# route add -net 目標網段 gw 下一跳地址
[root@www ~]# route del -net 目標網段 gw 下一跳地址 - 添加、洗掉默認網關記錄時,與添加、洗掉靜態路由記錄的命令格式類似,但指定目標網段時只需簡單地使用“default”表示即可,無須再使用“-net”選項指明網段地址,
[root@www ~]# route del default gw 網關地址 //洗掉默認網關記錄
[root@www ~]# route add default gw 網關地址 //添加新的默認網關記錄
四、修改網路組態檔
1、網路介面組態檔
網路介面的組態檔默認位于目錄/etc/sysconfig/network-scripts/中,檔案名格式為“ifcfg-XXX”,其中“XXX”是網路介面的名稱,
[root@localhost ~]# ls /etc/sysconfig/network-scripts/ifcfg-*
/etc/sysconfig/network-scripts/ifcfg-ens33
/etc/sysconfig/network-scripts/ifcfg-lo
/etc/sysconfig/network-scripts/ifcfg-ens36
[root@localhost network-scripts]# vim ifcfg-ens36
TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
DEVICE="ens36"
ONBOOT="yes"
IPADDR="192.168.20.1"
NETMASK="255.255.255.0"
GATEWAY="192.168.20.254"
- TYPE:設定網卡型別,“Ethernet”表示以太網,
- BOOTPROTO:設定網路介面的配置方式,值為“static”時表示使用靜態指定的 IP
地址,為“dhcp”時表示通過 DHCP 的方式動態獲取地址, - DEVICE:設定網路介面的名稱,
- ONBOOT:設定網路介面是否在 Linux 作業系統啟動時激活,
- IPADDR:設定網路介面的 IP 地址,
- ETMASK:設定網路介面的子網掩碼,
- GATEWAY:設定網路介面的默認網關地址,
2、啟用、禁用網路介面配置
1)啟用網路介面
[root@localhost ~]# systemctl restart network //重啟network服務
//會先關閉所有的網路介面,再根據組態檔重新啟用所有的網路介面,
//現實環境中不是特殊情況不建議使用
[root@localhost ~]# ifup ens33 或ifconfig ens33 up
2)關閉網路介面
[root@localhost ~]# ifup ens33 或ifconfig ens33 down
3、域名決議組態檔
1)指定為本機提供 DNS 決議的服務器地址
/etc/resolv.conf 檔案中記錄了本機默認使用的 DNS 服務器的地址資訊,對該檔案所做的修改將會立刻生效,Linux 作業系統中最多可以指定 3 個(第 3 個以后的將被忽略)不同的 DNS 服務器地址,優先使用第一個 DNS 服務器,
[root@localhost ~]# vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 114.114.114.114
- 但是,在 CentOS 7 環境下,如果按照上面方式配置,過一段時間會被系統重新覆寫或者清除,此時需要修改/etc/NetworkManager/NetworkManager.conf 檔案,在 main 部分添加“dns=none”配置項,之后需要重啟 NetworkManager 服務,確保/etc/resolv.conf 內有配置資訊,此時就可以正常決議域名了,
[root@localhost ~]# vi /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifcfg-rh
dns=none
2)本地主機映射檔案
- /etc/hosts 檔案中記錄著一份主機名與 IP 地址的映射關系表,一般用來保存經常需要訪問的主機的資訊,當訪問一個未知的域名時,先查找該檔案中是否有相應的映射記錄,如果找不到再去向 DNS 服務器查詢,
- 對于經常訪問的一些網站,可以通過在/etc/hosts 檔案添加正確的映射記錄,減少 DNS 查詢程序,從而提高上網速度,當然,若添加了錯誤的映射記錄,則可能導致網站訪問出現例外,另外,因為 hosts 檔案只保存在本地,所以其中的映射記錄也只適用于當前主機,而無法作用于整個網路,
[root@localhost ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
格式為IP地址域名或IP地址主機名
192.168.20.5 www.wodejia.com
192.168.20.55 node1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/202905.html
標籤:其他
