Linux-Networking
如何找出linux網關IP地址?
我有兩個 Internet 連接的 CentOS 6.7
eth0 - 通過 DHCP 的動態 IP 地址和動態網關(由 NetworkManager 控制)
ppp0 - 動態 IP 地址和動態網關(使用 rp_pppoe 配置)
我想編寫腳本,它會在某些情況下更改預設網關,如下所示:
ip route replace default scope global via $IP1 dev eth0 # or ip route replace default scope global via $IP2 dev ppp0 # or ip route replace default scope global nexthop via $IP1 dev eth0 weight 8 nexthop via $IP2 dev ppp0 weight 10
如何找出動態網關 $ IP1 and $ IP2?
更新:
從這個答案https://unix.stackexchange.com/a/124341/157086
在文件 /var/lib/dhclient/dhclient.leases 我可以找到通往 eth0 的網關
option routers 12.34.59.28;
如何找出 ppp0 的動態網關 $IP2?
正如@Alex 提到
netstat -r
的那樣,如果那不可用,還有另一種方法:$ ip route list dev eno1 default via X.X.X.X proto static metric 100 X.X.X.X/24 proto kernel scope link src X.X.X.X metric 100 $
更換
eno1
為您的設備。
dhclient -R routers
- 我無法測試它,因為我沒有dhcp
在任何地方進行設置。
對於設備,您可以使用 查詢對等方的
ppp0
IP 地址。ip addr show ppp0
但是,您甚至不需要一個,對於像您這樣的點對點設備,
ppp0
您只需將路由設置為介面即可,省略路由器 IP。