Vpn

Ubuntu 中的路由表

  • March 2, 2018

我是網路新手,不知道如何正確配置。

我可以ping到伺服器

ping -I 192.168.42.1 42.112.178.185

但我無法ping通

ping 42.112.178.185

42.112.178.185 僅允許接受 192.168.42.0/24。

如何添加路由表?我想用

ping 42.112.178.185 

代替

ping -I 192.168.42.1 42.112.178.185

我正在嘗試使用 curl 呼叫http://42.112.178.185並且需要從 192.168.42.1 路由。

更新如所願,這是針對特定問題的解決方案:curl在連接時使用正確的源 IP,通過在連接前告訴它使用--interface選項綁定到它。

curl 手冊頁

  • 界面

使用指定的介面執行操作。您可以輸入介面名稱、IP 地址或主機名。

因此,只需使用以下curl命令以正確的 IP 到達 42.112.178.185 即可解決問題:

curl --interface 192.168.42.1 http://42.112.178.185/

當然你也可以指定介面。


我仍然保留下面的路由解決方案,以防它可以幫助某人。


確實可以添加一條路由,該路由將告知在到達目標時使用預設 IP(屬於網關網路的 IP)以外的其他源 IP。

注意:因為沒有給出一些必需的資訊:預設網關的 IP 和到達它的介面,所以需要一些額外的腳本來找出它的值。也因為可能有一個隧道可能沒有替換預設路由,但可能添加了兩個“半預設路由”0.0.0.0/1 和 128.0.0.0/1,我將獲得到 42.112.178.185 的路由以擁有正確的值。

因此,讓我們將 gw IP 分配給gw

gw=$(ip -o route get 42.112.178.185 | sed -n 's/^.* via \([^ ][^ ]*\) *.*$/\1/p')

現在這是簡單的路由命令:

ip route add 42.112.178.185 src 192.168.42.1 via $gw

例如,如果網關是 10.0.8.1,Ubuntu 假定 tun0 的假定 ip 為 10.0.8.2,那麼在更改之前,查詢到 42.112.178.185 的路由將給出:

# ip route get 42.112.178.185
42.112.178.185 via 10.0.8.1 dev tun0 src 10.0.8.2 
   cache 

更改後將變為:

# ip route get 42.112.178.185
42.112.178.185 via 10.0.8.1 dev tun0 src 192.168.42.1
   cache

ip route命令可以更改為影響的不僅僅是這個單個 ip,但要做什麼取決於已經存在的其他路由。

引用自:https://serverfault.com/questions/899541