Ssh

將 VPN 流量轉發到另一台伺服器

  • December 29, 2019

我有 2 台伺服器:

伺服器 APublic IP --> 104.x.x.x

伺服器 BPublic IP --> 188.x.x.x

伺服器 A有 2 個 VPN 伺服器:

Openvpn --> tun0

Wireguard --> wg0

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
       inet 10.8.0.1  netmask 255.255.255.0  destination 10.8.0.1
       inet6 fe80::ae7d:f7ab:615b:a78a  prefixlen 64  scopeid 0x20<link>
       unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
       RX packets 0  bytes 0 (0.0 B)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 4  bytes 304 (304.0 B)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wg0: flags=209<UP,POINTOPOINT,RUNNING,NOARP>  mtu 1420
       inet 10.9.0.1  netmask 255.255.255.0  destination 10.9.0.1
       unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
       RX packets 22563  bytes 14268224 (14.2 MB)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 20017  bytes 15166196 (15.1 MB)
       TX errors 0  dropped 6 overruns 0  carrier 0  collisions 0

我希望如果有任何客戶端連接到openvpnwireguard,而不是從伺服器 A連接到網際網路,而是使用伺服器 B網際網路連接

Clients (Openvpn or wireguard) –> Server A –> Server B –> Connect to internet

我怎樣才能使成為可能?(使用 ssh 或其他方式將流量從伺服器 A 轉發到伺服器 B)

謝謝,

最好的問候

首先,您需要在伺服器 A 和 B 之間建立 VPN 連結,假設伺服器 B 將獲取10.10.0.1地址,伺服器 A10.10.0.2和伺服器 A 上的虛擬介面將被呼叫tun1。您可以使用更舒適的任何技術。

然後,正如davidgo 所說,您需要在伺服器 A 上使用基於策略的路由。為此:

  1. 在文件中添加一個新的路由表/etc/iproute2/rt_tables
200 vpn
  1. 添加選擇規則以將路由表vpn用於來自專用網路的所有流量:
ip rule add from 10.0.0.0/8 table vpn
  1. 填寫路由表
ip route add 10.8.0.0/16 dev tun0 src 10.8.0.1 table vpn
ip route add 10.9.0.0/16 dev wg0 src 10.9.0.1 table vpn
ip route add 10.10.0.0/16 dev tun1 src 10.10.0.2 table vpn
ip route add default via 10.10.0.1 dev tun1 table vpn

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