我遇到了與此類似的問題: 沒有 NAT 的 OpenVPN
好像還沒有回答。
我的情況描述:我在網路A 上有一個openvpn 伺服器,另一個管理員在離開公司之前安裝了該伺服器,現在有幾個用戶和伺服器連接到該openvpn 伺服器來存取網路A 並進行NAT,因此來自vpn 使用者/伺服器的所有請求都具有來自 openvpn 伺服器的來源位址。
現在我需要網路 A 上的一台伺服器來存取 openvpn 用戶端/伺服器之一,並希望在 openvpn 中停用 NAT 以公開這些客戶端和伺服器的「vpn 內部」IP 位址。
我知道我需要在網絡A 上添加一條路由來訪問vpn 網絡,這對我來說很清楚,但我不知道如何在openvpn 中禁用NAT,而且也沒有存在IPtables 規則,因此某些openvpn 內部NAT 機制似乎在使用。
我需要檢查哪些選項才能停用 NAT?
答案1
在 OpenVPN 伺服器上必須有這樣的規則
iptables -t nat -A POSTROUTING -i tun0 -j MASQUERADE
你可以找到它
iptables-t nat -L -n -v
你必須禁止這條規則。
如果,正如你所說(但你跑了
iptables -t nat -L -n -v
仔細檢查是否有 iptables 規則在起作用? ),唯一的其他可能性是 natting 是透過套件完成的iproute2
。做
cat /etc/iproute2/rt_tables
記下您擁有的表格的名稱,然後發出
ip route table TABLE_NAME | grep ^nat
看看是否能找到一些輸出。如果這樣做,則表示資料包標頭被iproute2
命令重寫ip route add nat ..
。您所需要做的就是刪除有問題的路由表。
這是兩種可能,第三非達圖爾。
現在,您需要為路由器新增一條規則,以透過 OpenVPN 伺服器路由 OpenVPN 子網路 10.0.0.0/24 的封包(假設它的 IP 位址為 192.168.0.127)。如果路由器是 Linux 機器,則執行下列命令:
ip route add 10.0.0.0/24 via 192.168.0.127
大多數路由器(例如 Cisco 的路由器)都具有Advanced routing
可在其 GUI 中找到的功能。您應該使用它來指定上面的路線。