1. 程式人生 > >伺服器ping不通,無法遠端連線

伺服器ping不通,無法遠端連線

現象

[[email protected] ~]# ping -I 172.17.1.6 -c 10 172.17.1.48
PING 172.17.1.48 (172.17.1.48) from 172.17.1.6 : 56(84) bytes of data.

--- 172.17.1.48 ping statistics ---
10 packets transmitted, 0 received, 100% packet loss, time 19000ms

分析

  抓包

[[email protected] ~]# tcpdump -vv -i eth0 dst host 172.17.1.6
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
09:50:58.390250 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.17.1.6 tell gitlab.lilian.com, length 28
09:50:59.390342 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.17.1.6 tell gitlab.lilian.com, length 28
09:51:00.390283 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.17.1.6 tell gitlab.lilian.com, length 28
09:51:02.390206 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.17.1.6 tell gitlab.lilian.com, length 28
09:51:03.390285 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.17.1.6 tell gitlab.lilian.com, length 28
09:51:04.390276 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.17.1.6 tell gitlab.lilian.com, length 28
09:51:06.390214 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.17.1.6 tell gitlab.lilian.com, length 28
09:51:07.390277 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.17.1.6 tell gitlab.lilian.com, length 28
09:51:08.390329 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.17.1.6 tell gitlab.lilian.com, length 28
10:13:00.457215 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.17.1.6 tell gitlab.lilian.com, length 28

接到icmp request,但是不傳送icmp reply

[[email protected] ~]# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
172.17.1.106             ether   18:31:bf:09:1a:e5   C                     eth0
172.17.1.6                       (incomplete)                              eth0

問題所咋arp廣播時沒有返回網絡卡mac地址(如果防火牆做了相關ping禁止不影響arp響應)

解決:

  如果將網絡卡配置檔案中mac地址註釋掉,然後刪除70-persistent-net.rules檔案重啟呢?答案是不行

  在網上看到是反向路由檢查的問題

Linux核心有反向路由檢查的機制。當Linux IP協議棧收到一個IP包時,會找路由。
本機的包會往上層協議送,而非本機的包會根據路由轉發。

為了防止非法的包被轉發或送給上層協議,查詢路由後Linux還會呼叫fib_validate_source()以
檢查其來源的合法性,基本原理是根據包的源地址查詢路由的出介面,然後比較包的原始入介面是
否和查到的出介面一致;如果一致則放過,如果不一致查詢skb->dev的rp_filter值,為1時將丟棄這
個包,0時放過。

{ 例項
本網路有三臺機器,R1, R2 和PC,子網掩碼都是255.255.0.0。
R2 (10.1.0.2) ---- (10.1.0.1) R1 (10.3.0.1) ---- (10.3.0.2) PC
R2 (10.2.0.2) ---- (10.2.0.1) R1

注意,設定R2的預設路由為10.1.0.1
現在,從PC上能夠ping通10.1.0.2,但是ping不通10.2.0.2。
tcpdump顯示,R2接到icmp request,但是不傳送icmp reply。

PC
$ ip a
inet 10.3.0.2/16 brd 10.3.255.255 scope global eth0
$ ip r
10.3.0.0/16 dev eth0  proto kernel  scope link  src 10.3.0.2 
default via 10.3.0.1 dev eth0 

R1
$ ip a
inet 10.1.0.1/16 brd 10.1.255.255 scope global eth1
inet 10.2.0.1/16 brd 10.2.255.255 scope global eth2
inet 10.3.0.1/16 brd 10.3.255.255 scope global eth3
$ ip r
10.1.0.0/16 dev eth1  proto kernel  scope link  src 10.1.0.1 
10.2.0.0/16 dev eth2  proto kernel  scope link  src 10.2.0.1 
10.3.0.0/16 dev eth3  proto kernel  scope link  src 10.3.0.1 

R2
$ ip a
inet 10.1.0.2/16 brd 10.1.255.255 scope global eth1
inet 10.2.0.2/16 brd 10.2.255.255 scope global eth2

$ ip r
10.1.0.0/16 dev eth1  proto kernel  scope link  src 10.1.0.2
10.2.0.0/16 dev eth2  proto kernel  scope link  src 10.2.0.2 
default via 10.1.0.1 dev eth1 

假設R2的兩個介面分別為A(10.1.0.2)、B(10.2.0.2)。
從PC ping 10.2.0.2時,包的路徑是PC-->10.3.0.1-->10.2.0.2,
此時包的 ,
以進行反向路徑檢查, 得到輸出裝置是A,
因為目的地址是10.3.0.2,只能使用預設路由。A!=B,反向路徑檢查失敗,
丟棄該包!}

每個介面的rp_filter配置在

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter 

echo 0 > /proc/sys/net/ipv4/conf/ethN/rp_filter

其值為1時是使能該介面反向路由檢查機制,為0時則關閉該機制,或者
vim /etc/sysctl.conf
net.ipv4.conf.default.rp_filter = 0

禁用反向路徑檢查。

在實際運用時該機制可能會帶來問題。對於一些虛介面上來的包,如gre0,ipsec0來的包,如果沒有
IP地址,從該虛介面上來的包可能被認為來源不合法而被核心DROP。
這時需要根據實際情況設定rp_filter為0,並配置IP地址。

以上分析是根據2.6.32核心程式碼而來。
更高版本的kernel可能已經解決這個問題,如3.6.3核心,對該機制有改進,對IPSEC的介面不做反射路
由檢查。

相關推薦

伺服器ping不通無法遠端連線

現象: [[email protected] ~]# ping -I 172.17.1.6 -c 10 172.17.1.48 PING 172.17.1.48 (172.17.1.48) from 172.17.1.6 : 56(84) bytes of dat

mysql只能本機連線無法遠端連線

1.檢視mysql資料庫的user資料庫表的的user,host 這個的host那一欄是否為localhost,如果是表示只能本地連線 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'haojunjie' WITH GR

伺服器安裝寶塔面板無法遠端連線資料庫的解決方法

準備搭建一個自己的網站,趁著618優惠買了一臺騰訊雲的linux伺服器,配置一般價格合適。因為對伺服器瞭解不多,所以選擇了使用圖形介面面板來進行管理,因為之前通過阿里雲瞭解到寶塔面板,所以就在伺服器安裝了寶塔linux面板。 在寶塔中進行相關的環境配置之後,就安裝了網站程式,這裡在安裝程式的

docker部署Oracle無法遠端連線(已解決)

docker部署Oracle,無法遠端連線 多方嘗試,包括客戶機的配置檔案,伺服器埠開放情況,偵聽服務等等 網上搜了很多教程 docker pull wnameless/oracle-xe-11g docker run -d -p 49160:22 -p 49161:15

IP能pingxshell遠端連線失敗

ip能ping通,Xshell 6 遠端連線卻失敗,是什麼原因呢? 挨個排查:              1、在cmd中這個地址是能ping通的,說明這臺伺服器沒有被佔用              2、到機房在這臺伺服器上操作時,ping迴路地址與其它內網地址也都是能夠

mysql 客戶端無法遠端連線linux伺服器mysql 提示1045

1,檢視mysql.user表的select * from user where host = "%" \G;  -- host %允許任何客戶端連線-- user rootpassword 需要修改加密密碼pass 2,修改密碼UPDATE `user` SET `Pas

Navicat無法遠端連線與本地連線MySQL伺服器解決方法

方法一: 使用Navicat遠端連線MySQL伺服器時,提示如下圖情況: 根據查閱不同資料發現,這個問題是因為root使用者使用的加密方式不同,需將其加密方式改為mysql_native_password,即可實現遠端連線MySQL伺服器。 那麼,怎麼來修改root使用者的Auth

Securtcrt無法遠端連線Linxu伺服器

作業系統: CentOS 遠端工具:Securtcrt 描述問題: 連線操作時不穩定,有點卡頓 無法遠端連線Linux伺服器 解決問題: 1.連線操作時不穩定,有點卡頓   重新安裝Securtcrt工具,或者解壓壓縮包,直接使用即可,證明是本身工具的問題。 2.無法

換網線導致的無法遠端連線伺服器問題

換網線導致的伺服器無法遠端連線問題 網路情況描述: 所使用的機房放置於機房,設定一個外網的IP及閘道器。日常辦公在樓上使用PC機進行遠端連線使用,PC機使用內網IP及閘道器,中間通過交換機進行連線。 最近給機房伺服器更換新網線,遇到一件奇怪的事情。原本網路連通狀況良好,但更換新網線之

Ubuntu 搭建hadoop叢集成功但MobaXterm無法遠端連線叢集各個節點

由於我是在VMware上 使用的ubuntu系統,因此解決這個問題需要先了解一下VMware三種網路工作模式: 我們可以看到有VMnet0(橋接模式)、VMnet1(僅主機模式)、VMnet8(NAT模式)其中: VMnet0表示的是:用於橋接模式下的虛擬交換機;

客戶端無法遠端連線redis伺服器

原因1:如果你的redis服務是在阿里雲伺服器上自建的,預設redis埠6379是不允許外部訪問的。 解決辦法:在伺服器對應的安全組管理中,開啟外部IP地址對Redis伺服器6379埠的訪問許可權。 原因2:Redis伺服器的redis.conf沒有配置放開IP許可權(預設

解決使用專有網路的阿里雲伺服器無法遠端連線的問題

購買了阿里雲伺服器的朋友們不知道有沒有遇到這樣的坑,就是當你雄心壯志、興高采烈地購買完伺服器想到大展身手的時候,卻尷尬無奈地發現無法遠端連線到伺服器! 嗯?這是咋回事哩,猶記得騰訊雲的伺服器一下子就連進去的啊。到控制檯的工單提問發現,阿里雲竟然給無法遠端桌

SecureCRT無法遠端連線伺服器的問題

一、linux系統遠端連線的原理 二、常見的問題解決方案 1)問題一: The remote system refused the connection  解決方法:如果你遇到這個問題,說明你的

lnmp一鍵安裝包mysql無法遠端連線

如題: 嘗試之後,發現並沒有什麼效果, 查了lnmp的官網-常見問題,裡面有提到這個問題, 原因:為了安全,lnmp 的大部分版本都是禁止遠端連線mysql的(3306埠被禁) 解決辦法:

伺服器ping不通本機外網和內網的區別

windos 的ipconfig 和 Linux 的 ifconfig  ip addr命令都是外網的基礎上分配的內網網路 如果想要在192.168.x.x 內網環境ping通必須保證在同一個wifi(區域網-外網下)下才行得通 如果是自己電腦開的虛擬機器 可以使用1

連線伺服器MySQL配置遠端連線許可權

(1)首先在本地進入mysql資料庫的mysql庫內 use mysql; (2)建立使用者: grant all PRIVILEGES on (*).* to [email protected]'%' identified by 'pas

阿里雲安裝MySQL以後MySQL無法遠端連線

原因: MySQL安裝預設建立的root使用者僅支援本地連線操作,ssh連線阿里雲伺服器,再mysql -u root -p命令連線資料庫的話,被認定為遠端連線,不是本地連線,提示連線失敗 注意:大家有沒有注意到,在報錯的最後提示using password:

阿里雲無法遠端連線伺服器(阿里雲無法外網訪問埠設定)

購買了阿里雲伺服器的朋友們不知道有沒有遇到這樣的坑,就是當你雄心壯志、興高采烈地購買完伺服器想到大展身手的時候,卻尷尬無奈地發現無法遠端連線到伺服器!我一臉懵逼,心想我只想安靜地做個實驗,竟然還給我來個門檻。無奈只好照著問題試試。開了遠端管理,開了遠端桌面…,試了很久發現還不

服務器能遠程連接網絡連接正常但是外網域名Ping不通瀏覽器中打不開網站

CP BE 網站 打不開 屬性 地址 dns設置 本地 否則   服務器能遠程連接成功,但在瀏覽器中打不開任何網站,出現這個問題一般是安裝什麽軟件引起IE的相關設置做了變動或者是服務器中了病毒引起的,或是服務器的DNS設置是錯誤的。    一、先檢查服務器DNS是否正確  

UltraEdit下ftp配置UE遠端連線linux

1、開啟UE主介面 2、右鍵選擇“賬號管理器” 3、 輸入相關資訊 4、此時可能會報如下錯誤 可參考https://jingyan.baidu.com/album/91f5db1b1072a31c7e05e360.html?picindex=1進行配置 5