Vpn
將公共 IP 隧道連接到遠端電腦
我有一個帶有 5 個公共 IP 地址塊的Linux 伺服器A
8.8.8.122/29
,. 目前,8.8.8.122
已分配給eth0
,並8.8.8.123
已分配給eth0:1
。我在 NAT 後面的遠端位置有另一台 Linux 機器B。我想在兩者之間建立一條隧道,以便B可以使用該 IP 地址
8.8.8.123
作為其主 IP 地址。OpenVPN 可能是答案,但我不太清楚如何設置(
topology subnet
或者topology p2p
可能是合適的。或者我應該使用乙太網橋接嗎?)。在這一點上,安全和加密不是一個大問題,所以 GRE 也可以——機器B將來自一個已知的 IP 地址,並且可以基於該地址進行身份驗證。我怎樣才能做到這一點?任何人都可以建議在這種情況下可行的 OpenVPN 配置或其他方法嗎?理想情況下,它還能夠處理多個客戶端(例如,與其他機器共享所有四個備用 IP),而不會讓這些客戶端使用他們無權使用的 IP。
我最終選擇了乙太網橋接。網上有很多極其冗長的例子,但事實證明這很容易:
首先,在A上,
/etc/network/interfaces
從:auto eth0 iface eth0 inet static address 8.8.8.122 netmask 255.255.255.248 gateway 8.8.8.121
到:
auto br0 iface br0 inet static address 8.8.8.122 netmask 255.255.255.248 gateway 8.8.8.121 pre-up openvpn --mktun --dev tap0 bridge_ports eth0 tap0 bridge_fd 3
為了在啟動時將
eth0
(真正的 WAN 介面)與tap0
(新的隧道介面)橋接。然後,在A上,使用以下命令執行 openvpn 伺服器:
openvpn --dev tap0
在B上,通過以下方式連接到它:
openvpn --remote 8.8.8.122 --dev tap0 --route-gateway 8.8.8.121 \ --redirect-gateway def1 --ifconfig 8.8.8.123 255.255.255.248
這是我一直在尋找的超級簡單的配置,而且它有效**——B**現在可以在 8.8.8.123 公開訪問,並且傳出連接來自同一個地址。
當然,根據需要添加安全性(
--secret
,--tls-server
等)。