Vpn

將公共 IP 隧道連接到遠端電腦

  • January 22, 2014

我有一個帶有 5 個公共 IP 地址塊的Linux 伺服器A8.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等)。

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