(為清楚起見進行了修改,2013 年 11 月 11 日)兩個不同的問題,就在路由表之前。
我知道這已經被涵蓋了。我讀了幾十篇文章,但仍然有疑問。
我有一台工作伺服器,其流量在沒有加密的情況下永遠不會離開我的家。 VPN 是 PPTP。目前,我有一個 cron 作業,每分鐘檢查 ppp0 適配器的狀態。如果連接斷開(這種情況經常發生),它就會關閉關鍵組件。
使用“nmcli con up id 'myVPNServer'”重新啟動 PPTP 相當容易,但不能保證它會重新連接,並且我需要一種更好的方法來在 ppp0 關閉時停止流量(除了殺死應用程式)。
我看過討論的兩個選項是防火牆(UFW、Firestarter、IPTables)或路由表。我很容易就會考慮防火牆選項,但我專注於路由表,因為不需要啟動新功能。
我的問題涉及路由表的變化方式以及規則的細節。
當我啟動 PPTP VPN 時,路由表會變更。這表明,如果 VPN 斷開,該表將變回原樣,從而違背了我聲明的阻止外部流量的意圖。如何對路由表進行「黏性」更改,即使 VPN 連線斷開,該更改也將持續存在?也許是“忽略自動獲取的路由”或“僅將此連接用於其網路上的資源”複選框(它們是 VPN 配置選項的一部分)?
看起來,如果我可以強制活動 VPN 路由表保持有效,即使 VPN 斷開,這也將有效地終止 VPN 斷開時的任何外部流量。這將使我可以自由地運行例程以從命令列重新啟動 VPN(假設路由表規則不會阻止我重新建立連接)。
我的路由表(VPN 處於活動狀態)是(ip 路由清單):
什麼進程正在修改路由表(當我啟動 VPN 時)?
對 10.10.1.1 有何評論?
$ ip route list
default dev ppp0 proto static
10.10.1.1 dev ppp0 proto kernel scope link src 10.10.1.11
VPN_Server_IP_Address via 192.168.1.1 dev eth0 proto static
VPN_Server_IP_Address via 192.168.1.1 dev eth0 src 192.168.1.60
169.254.0.0/16 dev eth0 scope link metric 1000
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.60 metric 1
答案1
希望範例配置能給您另一種方法的想法。例如:執行腳本來對 ppp0“up\down..”事件執行您想要的任何操作。您可以使用 predown 腳本來停止所有服務、鎖定防火牆中的所有流量並重新整理路由表。
zcat /usr/share/doc/ifupdown/examples/network-interfaces.gz | less
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
##...
# The "pre-up", "up", "down" and "post-down" options are valid for all
# interfaces, and may be specified multiple times. All other options
# may only be specified once.
我認為是它NetworkManager
正在修改您的路由表。的設定檔NetworkManager
可以在以下位置找到/etc/NetworkManager/*
在 [ipv4] 下為您的 (pptp) 連線新增以下內容:
ignore-auto-routes=true
ignore-auto-dns=true
我假設您需要重新啟動 pptp 連接才能使其啟動。工作了嗎?