linux 查看當前的網路配置
1、執行 ifconfig命令,結果如下可以查看到ip、mac地址等相關網路配置
配置 說明
DEVICE=eth0 網卡設備名,eth0表示第一張網卡
BOOTPROTO=none 是否自動獲取IP(none、static、dhcp),當值為dhcp時,只需配置上述例子中的那幾項就可以聯網
HWADDR=00:0C:29:11:30:39 MAC地址
NM_CONTROLLED=yes 是否可以由Network Manager圖形管理工具託管
ONBOOT=yes 是否隨網路服務啟動當前網卡生效(在CentOS 6 以上的版本中ONBOOT是默認關閉的。)
TYPE=Ethernet 網路類型,這里為乙太網
UUID=5ab36190-a5df-4bf1-94d8-6c126afd05f1 唯一識別碼
IPADDR=192.168.0.200 IP地址
NETMASK=255.255.255.0 子網掩碼
GATEWAY=192.168.0.1 網關
DNS1=202.106.0.20 DNS
IPV6INIT=no IPv6是否啟用,這里設置為不啟用
USERCTL=no 是否允許非root用戶控制此網卡,這里為不允許
⑵ linux系統如何查看網路中的其他計算機
用nmap命令,例如你的網段是192.168.0.*,掩碼是255.255.255.0,則:
namp -sP 192.168.0.0/24
會掃描出該網段內所有開機的機器
⑶ linux中中怎麼獲取區域網的所有機器的IP地址等信息
Linux用nmap對區域網掃描,查看arp緩存表就可以知道局域內主機ip和mac了,方法如下: 1.進行ping掃描,列印出對掃描做出響應的主機 nmap -sP 192.168.1.0/242.使用UDP ping探測主機 nmap -PU 192.168.1.0/243.使用頻率最高的掃描選項(SYN掃描,...
⑷ linux 下通過某個ip查找mac 地址 命令
1.首先,右鍵點擊桌面,選擇「打開終端」,或者按CTRL+Alt+T打開終端。
⑸ 關於Linux下必須知道的11個網路命令有哪些
以下羅列一些非常有用的網路命令(不止11個)
連通性
• ping <host>:發送 ICMP echo 消息(一個包)到主機。這可能會不停地發送直到你按下 Control-C,Ping 的通意味著一個包從你的機器通過 ICMP 發送出去,並在 IP 層回顯。Ping 告訴你另一個主機是否在運行。
• telnet <host> [port]:與主機在指定的埠通信。默認的 telnet 埠是 23。按 Control-] 以退出 telnet。其它一些常用的埠是:
7 —— echo 埠
25 —— SMTP,用於發送郵件
79 —— Finger (LCTT 譯註:維基網路 - Finger protocal,不過舉例 Finger 恐怕不合時宜,倒不如試試 80?),提供該網路下其它用戶的信息。
ARP
ARP 用於將 IP 地址轉換為乙太網地址。root 用戶可以添加和刪除 ARP 記錄。當 ARP
記錄被污染或者錯誤時,刪除它們會有用。root 顯式添加的 ARP 記錄是永久的 —— 代理設置的也是。ARP
表保存在內核中,動態地被操作。ARP 記錄會被緩存,通常在 20 分鍾後失效並被刪除。
• arp -a:列印 ARP 表。
• arp -s <ip_address> <mac_address> [pub]:添加一條記錄到表中。
• arp -a -d:刪除 ARP 表中的所有記錄。
路由
• netstat -r:列印路由表。路由表保存在內核中,用於 IP 層把包路由到非本地網路。
• route add:route: 用於向路由表添加靜態(手動指定而非動態)路由路徑。所有從該 PC 到那個 IP/子網的流量都會經由指定的網關 IP。它也可以用來設置一個默認路由。
例如,在 IP/子網處使用 0.0.0.0,就可以發送所有包到特定的網關。
• routed:控制動態路由的 BSD 守護程序。開機時啟動。它運行 RIP 路由協議。只有 root 用戶可用。沒有 root 許可權你不能運行它。
• gated:gated 是另一個使用 RIP 協議的路由守護進程。它同時支持 OSPF、EGP 和 RIP 協議。只有 root 用戶可用。
• traceroute:用於跟蹤 IP 包的路由。它每次發送包時都把跳數加 1,從而使得從源地址到目的地之間的所有網關都會返回消息。
• netstat -rnf inet:顯示 IPv4 的路由表。
• sysctl net.inet.ip.forwarding=1:啟用包轉發(把主機變為路由器)。
• route add|delete [-net|-host] <destination> <gateway>:(如 route add 192.168.20.0/24 192.168.30.4)添加一條路由。
• route flush:刪除所有路由。
• route add -net 0.0.0.0 192.168.10.2:添加一條默認路由。
• routed -Pripv2 -Pno_rdisc -d [-s|-q]:運行 routed 守護進程,使用 RIPv2 協議,不啟用 ICMP 自動發現,在前台運行,供給模式或安靜模式。
• route add 224.0.0.0/4 127.0.0.1:為本地地址定義多播路由。(LCTT 譯註:原文存疑)
• rtquery -n <host>(LCTT 譯註:增加了 host 參數):查詢指定主機上的 RIP 守護進程(手動更新路由表)。
其它
• nslookup:向 DNS 伺服器查詢,將 IP 轉為名稱,或反之。例如,nslookup facebook.com 會給出 facebook.com 的 IP。
• ftp <host> [port](LCTT 譯註:原文中 water 應是筆誤):傳輸文件到指定主機。通常可以使用 登錄名 "anonymous" , 密碼 "guest" 來登錄。
• rlogin -l <host>(LCTT 譯註:添加了 host 參數):使用類似 telnet 的虛擬終端登錄到主機。
重要文件
• /etc/hosts:域名到 IP 地址的映射。
• /etc/networks:網路名稱到 IP 地址的映射。
• /etc/protocols:協議名稱到協議編號的映射。
• /etc/services:TCP/UDP 服務名稱到埠號的映射。
工具和網路性能分析
• ifconfig <interface> <address> [up]:啟動介面。
• ifconfig <interface> [down|delete]:停止介面。
• ethereal & ;:在後台打開 ethereal 而非前台。
• tcpmp -i -vvv :抓取和分析包的工具。
• netstat -w [seconds] -I [interface]:顯示網路設置和統計信息。
• udpmt -p [port] -s [bytes] target_host :發送 UDP 流量。
• udptarget -p [port]:接收 UDP 流量。
• tcpmt -p [port] -s [bytes] target_host :發送 TCP 流量。
• tcptarget -p [port]:接收 TCP 流量。
交換機
• ifconfig sl0 srcIP dstIP ifconfig sl0 srcIP dstIP:配置一個串列介面(在此前先執行 slattach -l /dev/ttyd0,此後執行 sysctl net.inet.ip.forwarding=1)
• telnet 192.168.0.254:從子網中的一台主機訪問交換機。
• sh ru 或 show running-configuration :查看當前配置。
• configure terminal :進入配置模式。
• exit :退出當前模式。(LCTT 譯註:原文存疑)
VLAN
• vlan n :創建一個 ID 為 n 的 VLAN。
• no vlan N :刪除 ID 為 n 的 VLAN。
• untagged Y :添加埠 Y 到 VLAN n。
• ifconfig vlan0 create :創建 vlan0 介面。
• ifconfig vlan0 vlan_ID vlandev em0:把 em0 加入到 vlan0 介面(LCTT 譯註:原文存疑),並設置標記為 ID。
• ifconfig vlan0 [up]:啟用虛擬介面。
• tagged Y :為當前 VLAN 的埠 Y 添加標記幀支持。
UDP/TCP
• A socklab udp :使用 UDP 協議運行 socklab。
• sock :創建一個 UDP 套接字,等效於輸入 sock udp 和 bind 。
• sendto <Socket ID> <hostname> <port #>:發送數據包。
• recvfrom <Socket ID> <byte #>:從套接字接收數據。
• socklab tcp :使用 TCP 協議運行 socklab。
• passive passive:創建一個被動模式的套接字,等效於 socklab ,sock tcp ,bind ,listen 。
• accept :接受進來的連接(可以在發起進來的連接之前或之後執行)。
• connect <hostname> <port #>:等效於 socklab ,sock tcp ,bind ,connect 。
• close :關閉連接。
• read <byte #>:從套接字中讀取 n 位元組。
• write :(例如write ciao、write #10)向套接字寫入 "ciao" 或 10 個位元組。
NAT/防火牆
• rm /etc/resolv.conf :禁止地址解析,保證你的過濾和防火牆規則正確工作。
• ipnat -f file_name :將過濾規則寫入文件。
• ipnat -l :顯示活動的規則列表。
• ipnat -C -F :重新初始化規則表。
• map em0 192.168.1.0/24 -> 195.221.227.57/32 em0:將 IP 地址映射到介面。
• map em0 192.168.1.0/24 -> 195.221.227.57/32 portmap tcp/udp 20000:50000:帶埠號的映射。
• ipf -f file_name :將過濾規則寫入文件。
• ipf -F -a :重置規則表。
• ipfstat -I :當與 -s 選項合用時列出活動的狀態條目
內容來源:http;//www.linuxprobe.com/linux-network-command.html
⑹ 如何給linux給ARP表添加條目
Liunx添加ARP表方式如下:
[功能]
管理系統的arp緩存。
[描述]
用來管理系統的arp緩存,常用的命令包括:
arp: 顯示所有的表項。
arp -d address: 刪除一個arp表項。
arp -s address hw_addr: 設置一個arp表項。
常用參數:
-a 使用bsd形式輸出。(沒有固定的列)
-n 使用數字形式顯示ip地址,而不是默認的主機名形式。
-D 不是指定硬體地址而是指定一個網路介面的名稱,表項將使用相應介面的MAC地址。一般用來設置ARP代理。
-H type, --hw-type type: 指定檢查特定類型的表項,默認type為ether,還有其他類型。
-i If, --device If: 指定設置哪個網路介面上面的arp表項。
-f filename: 作用同'-s',不過它通過文件來指定IP地址和MAC地址的綁定。文件中每行分別是主機和MAC,中間以空格分割。如果沒有指定文件名稱,則使用/etc/ethers文件。
以下例子中,用主機名稱的地方也可以用點分10進制的ip地址來表示。另外輸出結果中用"C"表示ARP緩存內容,"M"表示永久性表項,"P"表示公共的表項。
[舉例]
*查看arp表:
#arp
Address HWtype HWaddress FlagsMask Iface
hostname1 ether 44:37:e6:97:92:16 C eth0
hostname2 ether 00:0f:fe:43:28:c5 C eth0
hostname3 ether 00:1d:92:e3:d5:ee C eth0
hostname4 ether 00:1d:0f:11:f2:a5 C eth0
這里,Flags中的"C"代表此表項目是高速緩存中的內容,高速緩存中的內容過一段時間(一般20分鍾)會清空,而"M"則表示靜態表項,靜態表項的內容不會過一段時間被清空。
*查看arp表,並且用ip顯示而不是主機名稱:
# arp -n
Address HWtype HWaddress FlagsMask Iface
10.1.10.254 ether 00:1d:92:e3:d5:ee C eth0
10.1.10.253 ether 44:37:e6:9b:2c:53 C eth0
10.1.10.178 ether 00:1b:78:83:d9:85 C eth0
10.1.10.119 ether 00:1d:0f:11:f2:a5 C eth0
這里,對於上面的條目,假設當我們"ping 10.1.10.1"通過之後,arp中會多一條"10.1.10.1"相關的信息。
*查看arp表,顯示主機名稱和ip:
#arp -a
ns.amazon.esdl.others.com (10.1.10.254) at00:1d:92:e3:d5:ee [ether] on eth0
server.amazon.eadl.others.com (10.1.10.253) at44:37:e6:9b:2c:53 [ether] on eth0
D2-jh.amazon.esdl.others.com (10.1.10.178) at00:1b:78:83:d9:85 [ether] on eth0
aplab.local (10.1.10.119) at 00:1d:0f:11:f2:a5[ether] on eth0
*添加一對IP和MAC地址的綁定:
# arp -s 10.1.1.1 00:11:22:33:44:55:66
這里,如果網路無法達到,那麼會報告錯誤,具體如下:
root@quietheart:/home/lv-k# arp -s 10.1.1.100:11:22:33:44:55:66
SIOCSARP: Network is unreachable
root@quietheart:/home/lv-k# arp -n
Address HWtype HWaddress FlagsMask Iface
10.1.10.254 ether 00:1d:92:e3:d5:ee C eth0
10.1.10.253 ether 44:37:e6:9b:2c:53 C eth0
10.1.10.178 ether 00:1b:78:83:d9:85 C eth0
10.1.10.119 ether 00:1d:0f:11:f2:a5 C eth0
實際上,如果"arp -s"設置成功之後,會增加一個Flags為"CM"的表項,有些系統靜態條目不會因為ARP響應而更新,而高速緩存中的條目會因此而更新。如果想要手工設置沒有"M",那麼用"temp"選項,例如:"arp -s IP MAC temp"類似的命令,實踐發現,如果已經設置過IP了,那麼再設置也不會改變其Flags。
*刪除一個arp表項:
# arp -d 10.1.10.118
這里,刪除之後只是硬體地址沒有了,如下:
root@quietheart:~# arp -n
Address HWtype HWaddress FlagsMask Iface
10.1.10.118 ether 00:25:9c:c2:79:90 CM eth0
10.1.10.254 ether 00:1d:92:e3:d5:ee C eth0
root@quietheart:~# arp -d 10.1.10.118
root@quietheart:~# arp -n
Address HWtype HWaddress FlagsMask Iface
10.1.10.118 (incomplete) eth0
10.1.10.254 ether 00:1d:92:e3:d5:ee C
*刪除eth0上面的一個arp表項:
# arp -i eth0 -d 10.1.10.118
[其它]
*指定回復的MAC地址:
#/usr/sbin/arp -i eth0 -Ds 10.0.0.2 eth1 pub
當eth0收到IP地址為10.0.0.2的請求時,將會用eth1的MAC地址回答。
例如,雙網卡機器運行這條命令:
/usr/sbin/arp -i eth0 -Ds 10.0.0.2 eth1 pub
會多一項:
10.0.0.2 * MP eth0
⑺ linux下防arp
方法一:
首先安裝arptables:
sudo apt-get install arptables
然後定義規則:
sudo arptables -A INPUT --src-mac ! 網關物理地址 -j DROP
sudo arptables -A INPUT -s ! 網關IP -j DROP
sudo arptables -A OUTPUT --destination-mac ff:ff:ff:ff:ff:ff -j ACCEPT
不過這樣就有一點不好,區域網內的資源不能用!
sudo arptables -F
當然我們可以做個腳本,每次開機的時候自動運行!~sudo gedit /etc/init.d/arptables,內容如下:
#! /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
arptables -A INPUT --src-mac ! 網關物理地址 -j DROP
arptables -A INPUT -s ! 網關IP -j DROP
arptables -A OUTPUT --destination-mac ff:ff:ff:ff:ff:ff -j ACCEPT
然後給arptables加個execution的屬性,
sudo chmod 755 /etc/init.d/arptables
再把arptables設置自動運行,
sudo update-rc.d arptables start 99 S .
用sysv-rc-conf直接設置
方法二:
1、先使用arp和 arp -a查看一下當前ARP緩存列表
[root@ftpsvr ~]# arp
Address HWtype HWaddress Flags Mask Iface
192.168.1.234 ether 00:04:61:AE:11:2B C eth0
192.168.1.145 ether 00:13:20:E9:11:04 C eth0
192.168.1.1 ether 00:02:B3:38:08:62 C eth0
說明:
Address:主機的IP地址
Hwtype:主機的硬體類型
Hwaddress:主機的硬體地址
Flags Mask:記錄標志,」C」表示arp高速緩存中的條目,」M」表示靜態的arp條目。
[root@ftpsvr ~]# arp -a
? (192.168.1.234) at 00:04:61:AE:11:2B [ether] on eth0
? (192.168.1.1) at 00:16:76:22:23:86 [ether] on eth0
2、新建一個靜態的mac–>ip對應表文件:ip-mac,將要綁定的IP和MAC 地下寫入此文件,格式為 ip mac。
[root@ftpsvr ~]# echo 『192.168.1.1 00:02:B3:38:08:62 『 > /etc/ip-mac
[root@ftpsvr ~]# more /etc/ip-mac
192.168.1.1 00:02:B3:38:08:62
3、設置開機自動綁定
[root@ftpsvr ~]# echo 『arp -f /etc/ip-mac 『 >> /etc/rc.d/rc.local
4、手動執行一下綁定
[root@ftpsvr ~]# arp -f /etc/ip-mac
5、確認綁定是否成功
[root@ftpsvr ~]# arp
Address HWtype HWaddress Flags Mask Iface
192.168.0.205 ether 00:02:B3:A7:85:48 C eth0
192.168.1.234 ether 00:04:61:AE:11:2B C eth0
192.168.1.1 ether 00:02:B3:38:08:62 CM eth0
[root@ftpsvr ~]# arp -a
? (192.168.0.205) at 00:02:B3:A7:85:48 [ether] on eth0
? (192.168.1.234) at 00:04:61:AE:11:2B [ether] on eth0
? (192.168.1.1) at 00:02:B3:38:08:62 [ether] PERM on eth0
從綁定前後的ARP緩存列表中,可以看到網關(192.168.1.1)的記錄標志已經改變,說明綁定成功。
⑻ Linux內核-arp協議
從ip_finish_output2到dev_queue_xmit路徑:
http://www.bluestep.cc/linux%e5%91%bd%e4%bb%a4arping-%e7%bd%91%e7%bb%9c%e7%ae%a1%e7%90%86-%e9%80%9a%e8%bf%87%e5%8f%91%e9%80%81arp%e5%8d%8f%e8%ae%ae%e6%8a%a5%e6%96%87%e6%b5%8b%e8%af%95%e7%bd%91%e7%bb%9c/
arp協議:
(1).硬體類型:
硬體地址類型,該欄位值一般為ARPHRD_ETHER,表示乙太網。
(2).協議類型:
表示三層地址使用的協議,該欄位值一般為ETH_P_IP,表示IP協議
(3)硬體地址長度,乙太網MAC地址就是6;
(4)協議地址長度,IP地址就是4;
(5)操作碼
常見的有四種,arp請求,arp相應,rarp請求,rarp相應。
(6)發送方硬體地址與IP地址,(7)目標硬體地址與目標IP地址。
arp頭數據結構:
arp模塊的初始化函數為arp_init(),這個函數在ipv4協議棧的初始化函數inet_init()中被調用。
1.初始化arp表arp_tbl;
2.注冊arp協議類型;
3.建立arp相關proc文件,/proc/net/arp;
4.注冊通知事件
一個neigh_table對應一種鄰居協議,IPv4就是arp協議。用來存儲於鄰居協議相關的參數、功能函數、鄰居項散列表等。
一個neighbour對應一個鄰居項,就是一個arp條目
鄰居項函數指針表,實現三層和二層的dev_queue_xmit()之間的跳轉。
用來存儲統計信息,一個結構實例對應一個網路設備上的一種鄰居協議。
注冊arp報文類型 :dev_add_pack(&arp_packet_type);
就是把arp_packet_type添加到ptype_base哈希表中。
注冊新通知事件的時候,在已經注冊和UP的設備上,會調用一次這個通知事件。
設備事件類型:
創建一個鄰居項,並將其添加到散列表上,返回指向該鄰居項的指針。
tbl:待創建的鄰居項所屬的鄰居表,即arp_tbl;
pkey:三層協議地址(IP地址)
dev:輸出設備
want_ref:??
創建鄰居項
1.設置鄰居項的類型
2.設置鄰居項的ops指針
3.設置鄰居項的output函數指針
調用dst_link_failure()函數向三層報告錯誤,當鄰居項緩存中還有未發送的報文,而該鄰居卻無法訪問時被調用。不懂。
用來發送arp請求,在鄰居項狀態定時器處理函數中被調用。
neigh:arp請求的目的鄰居項
skb:緩存在該鄰居項中的待發送報文,用來獲取該skb的源ip地址。
將得到的硬體源、目的地址,IP源、目的地址等作為參數,調用arp_send()函數創建一個arp報文並將其輸出。
創建及發送arp報文
創建arp報文,填充欄位。
發送arp報文
用來從二層接收並處理一個arp報文。這個函數中就是做了一些參數檢查,然後調用arp_process()函數。
neigh_event_ns
neigh_update
這個函數的作用就是更新鄰居項硬體地址和狀態。分支比較多。
neigh_update_notify
代理arp(proxy arp),通常像路由器這樣的設備才使用,用來代替處於另一個網段的主機回答本網段主機的arp請求。
感覺代碼ARP好像沒啥用呀。
網路主機發包的一般過程:
1.當目的IP和自己在同一網段時,直接arp請求該目的IP的MAC。
2.當目的IP和自己不再同一網段時,arp請求默認網關的MAC。
https://www.cnblogs.com/taitai139/p/12336554.html
https://www.cnblogs.com/Widesky/p/10489514.html
當主機沒有默認網關的時候,arp請求別的網段的報文,到達路由器後,本來路由器是要隔離廣播的,把這個arp請求報文給丟棄,這樣就沒法通信了。當路由器開啟arp proxy後,路由器發現請求的目的IP在其他網段,就自己給主機回復一個arp響應報文,這樣源主機就把路由器的MAC當成目的IP主機對應的MAC,可以通信了。這樣可能會造成主機arp表中,多個IP地址都對應於路由器的同一個MAC地址。
可以使用arping命令發送指定IP的arp請求報文。
寫完了發現這個老妹寫的arp代理文章蠻好的,不過她好像是轉載的。
⑼ 怎樣查看linux 靜態arp perm
Linux Arp命令顯示和修改地址解析協議(ARP)使用的「IP 到物理」地址轉換表。 ARP -s inet_addr eth_addr [if_addr] ARP -d inet_addr [if_addr] ARP -a [inet_addr] [-N if_addr] [-v] -a 通過詢問當前回協議數據,顯示當前ARP項。如答果指定inet_addr...