1.1 基本概念
linux
通常安裝linux後第一件事就是進行網絡設置的主要是在網關中,由ip地址、子網掩碼、廣播地址,由這些來決定整個系統和外面的資源鏈接。shell
網關:網關(Gateway)又稱網間鏈接器、協議轉換器。是一個硬件和軟件結合的設備(如今統稱」路由器」),是鏈接不一樣系統和網絡的橋樑,工做在網絡層。centos
網關地址:字面意義,路由器的ip地址。用於該網段和其它網段的通訊(通常爲該網段的最小地址)。服務器
廣播地址:是專門用於同時向網絡中該網段的全部工做站進行發送的一個地址。通常爲該網段的最大位。網絡
Ip地址:每個設備(統稱操做系統)都會有一個網絡地址(如今普通PC都是使用IPv4,之後會慢慢過分到IPv6)。 IP地址=網絡地址+主機地址session
子網掩碼:當設備須要進行網絡通訊的時候,用來計算訪問ip是否爲同一網段,若是是同一網段則直接鏈接,不然就繼續廣播。dom
一般的計算方式:ssh
Eg: ip地址/子網掩碼:192.168.1.5/24socket
Ip:192.168.1.5tcp
子網掩碼:255.255.255.000(前24位爲1)
網段:192.168.1.0
網段下的主機:192.168.1.1----192.168.1.254
廣播地址:192.168.1.255
網關<路由器>: 通常設置爲192.168.1.1
2.1:(下面的文件都是一centos7爲準)
/etc/host.conf 配置域名服務客戶端的控制文件
/etc/hosts 完成主機名映射爲IP地址的功能
/etc/resolv.conf 域名服務客戶端的配置文件,用於指定域名服務器的位置
1.一個域名解析,先去/etc/host.conf 讀取解析順序。
2.若是是local在前,則去/etc/hosts讀取
3.若是本地沒有,則須要/etc/resolv.cnf 讀取DNS服務器的解析
/etc/xinetd.conf 定義了由超級進程xinetd啓動的網絡服務
/etc/networks 完成域名與網絡地址的映射
/etc/protocols 設定了主機使用的協議以及各個協議的協議號
/etc/services 設定主機的不一樣端口的網絡服務
設置:
/etc/sysconfig/network 包含了主機最基本的網絡信息,用於系統啓動.
/etc/sysconfig/network-script/ 系統啓動時初始化網絡的一些信息
2.2 /etc/host.conf
multi on #容許主機擁有多個IP地址 order hosts,bind #主機名解析順序,即本地解析,DNS域名解析的順序 這個文件通常不須要咱們修改,默認的解析順序是本地解析,DNS服務器解析,也就是說在本系統裏對於一個主機名首先進行本地解析,若是本地解析沒有,而後進行DNS服務器解析
2.3 /etc/hosts 主機域名和IP映射,至關於一個本地DNS
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 可見,默認的狀況是本機ip和本機一些主機名的對應關係,第一行是ipv4信息,第二行是ipv6信息,若是用不上ipv6本機解析,通常把該行註釋掉。 第一行的解析效果是,localhost localhost.localdomain localhost4 localhost4.localdomain4都會被解析成127.0.0.1,咱們能夠用ping試試。
2.4 /etc/resolv.conf 指定域名解析的DNS服務器IP等信息
default 0.0.0.0 loopback 127.0.0.0 link-local 169.254.0.0
2.5 /etc/protocols :linux支持的協議文件
2.6 /etc/services :linux的系統服務佔用的端口
2.7 /etc/sysconfig/network-scripts/ifcfg-eno16777736: centos7的一個網絡設置文件
這個文件是linux網絡設置的配置文件.ip地址、子網掩碼、廣播地址、網關地址、系統啓動是否使用網絡,都在這裏設置。 1.能夠設置多個,而後根據狀況啓動 2.重要屬性: ONBOOT 是否啓動 IPADDR:IP地址 NETMASK:子網掩碼 GATEWALL:網關地址 BROADCAST:廣播地址 BOOTPROTO:開機協議,static 靜態IP、none 不指定、dhcp 動態獲取IP
3.1 常見的一些linux的網絡命令
ifconfig:查看與設置IP地址、子網掩碼
hostname:查看與設置主機名
route: 查看與設置路由信息(默認網關等)
ip、ping、netstat、telnet、ftp、rlogin、rcp、finger、mail、 nslookup;
3.2 netstat :命令用於顯示各類網絡相關信息,如網絡鏈接,路由表,接口狀態 (Interface Statistics),masquerade 鏈接,多播成員 (Multicast Memberships) 等等。
-a (all)顯示全部選項,默認不顯示LISTEN相關 -t (tcp)僅顯示tcp相關選項 -u (udp)僅顯示udp相關選項 -n 拒絕顯示別名,能顯示數字的所有轉化成數字。 -l 僅列出有在 Listen (監聽) 的服務狀態 -p 顯示創建相關連接的程序名 -r 顯示路由信息,路由表 -e 顯示擴展信息,例如uid等 -s 按各個協議進行統計 -c 每隔一個固定時間,執行該netstat命令
從總體上看,netstat的輸出結果能夠分爲兩個部分:
1. Active Internet connections,稱爲有源TCP鏈接,其中"Recv-Q"和"Send-Q"指%0A的是接收隊列和發送隊列。這些數字通常都應該是0。若是不是則表示軟件包正在隊列中堆積。這種狀況只能在很是少的狀況見到。
2.Active UNIX domain sockets,稱爲有源Unix域套接口(和網絡套接字同樣,可是隻能用於本機通訊,性能能夠提升一倍)。
Proto顯示鏈接使用的協議,RefCnt表示鏈接到本套接口上的進程號,Types顯示套接口的類型,State顯示套接口當前的狀態,Path表示鏈接到套接口的其它進程使用的路徑名
顯示TCP:
$:netstat –at Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN tcp6 0 0 [::]:ssh [::]:* LISTEN tcp6 0 0 localhost:ipp [::]:* LISTEN tcp6 0 0 localhost:smtp [::]:* LISTEN
顯示UDP:
$:netstat –au Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 0.0.0.0:51217 0.0.0.0:* udp 0 0 0.0.0.0:bootpc 0.0.0.0:* udp 0 0 0.0.0.0:ntp 0.0.0.0:* udp 0 0 0.0.0.0:mdns 0.0.0.0:* udp 0 0 localhost:323 0.0.0.0:* udp 0 0 0.0.0.0:6654 0.0.0.0:* udp6 0 0 [::]:ntp [::]:* udp6 0 0 localhost:323 [::]:* udp6 0 0 [::]:52918 [::]:*
顯示監聽狀態
$ netstat -atl Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN tcp6 0 0 [::]:ssh [::]:* LISTEN tcp6 0 0 localhost:ipp [::]:* LISTEN tcp6 0 0 localhost:smtp [::]:* LISTEN $ netstat -aul Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 0.0.0.0:59431 0.0.0.0:* udp 0 0 0.0.0.0:bootpc 0.0.0.0:* udp 0 0 0.0.0.0:ntp 0.0.0.0:* udp 0 0 0.0.0.0:mdns 0.0.0.0:* udp 0 0 localhost:323 0.0.0.0:* udp 0 0 0.0.0.0:43550 0.0.0.0:* udp6 0 0 [::]:ntp [::]:* udp6 0 0 localhost:323 [::]:* udp6 0 0 [::]:37361 [::]:*
顯示相關的程序名和PID
$:netstat –tp rocesses could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name 1tcp 0 0 192.168.174.137:47809 85.12.30.227:https ESTABLISHED 49721/firefox tcp 0 0 192.168.174.137:47812 85.12.30.227:https ESTABLISHED 49721/firefox tcp 0 1 192.168.174.137:51118 tg-in-f138.1e100.n:http SYN_SENT 49721/firefox tcp 0 0 192.168.174.137:47815 85.12.30.227:https ESTABLISHED 49721/firefox
顯示unix的本地服務<不少服務都是經過ip>
$:etstat –ax (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node PID/Program name Path unix 2 [ ACC ] STREAM LISTENING 35419 14062/gnome-session /tmp/.ICE-unix/14062 unix 2 [ ACC ] STREAM LISTENING 36397 14265/pulseaudio /tmp/.esd-1000/socket unix 2 [ ACC ] STREAM LISTENING 31489 14232/dbus-daemon @/tmp/dbus-3MrnzFuZih unix 2 [ ACC ] STREAM LISTENING 24786 - public/pickup unix 2 [ ACC ] STREAM LISTENING 22740 - @/tmp/.X11-unix/X0 unix 2 [ ACC ] STREAM LISTENING 32449 14382/ibus-daemon @/tmp/dbus-gDwmwcbq unix 2 [ ACC ] STREAM LISTENING 35418 14062/gnome-session @/tmp/.ICE-unix/14062 unix 2 [ ACC ] STREAM LISTENING 36399 14265/pulseaudio /run/user/1000/pulse/native unix 2 [ ACC ] STREAM LISTENING 16589 - @ISCSID_UIP_ABSTRACT_NAMESPACE unix 2 [ ACC ] STREAM LISTENING 32337 14265/pulseaudio /run/user/1000/pulse/dbus-socket