Amazon-Ec2

使用普通 OpenVPN 將本地子網雙向連接到 VPS 伺服器

  • February 20, 2020

假設我們有一個本地子網192.168.1.0/24,需要通過10.8.0.0/24使用 OpenVPN 創建的子網雙向連接到任何 VPS(Amazon EC2、Linode、Vultr 等)上的機器。

其中一部分已經完成。使用 TUN 連接 VPS 機器非常簡單。我們還使用配置文件中的以下命令成功地為其授予了對本地子網的訪問權限:

route 192.168.1.0 255.255.255.0

它現在可以連接到該本地子網中的任何電腦。問題在於反過來連接。本地機器找不到任何通往 VPS 伺服器的路由。

應該將什麼配置添加到 VPS 機器或本地 OpenVPN 伺服器以允許從到192.168.1.3路由?根據我們的實際配置,無法到達目的地。192.168.1.10``10.8.0.10``traceroute

這是駐留在伺服器上的配置文件的概述

local 192.168.1.3
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-crypt tc.key
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
max-clients 1
route 192.168.1.0 255.255.255.0 192.168.1.1
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 1.0.0.1"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem
explicit-exit-notify
[... certificates here ...]

這是客戶端的配置:

client
dev tun
proto udp
remote [... our VPN's public address ...] 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA512
cipher AES-256-CBC
ignore-unknown-option block-outside-dns
block-outside-dns
verb 3
route 192.168.1.0 255.255.255.0
[... certificates here ...]

是關於ip轉發的…

執行 CentOS 7 的 VPS 伺服器只需要這樣設置:

echo 'net.ipv4.ip_forward=1' >> /etc/systctl.conf

然後重新啟動。

這是在VPC Subnet RouteTable中完成的。您必須10.8.0.0/24通過 OpenVPN EC2 實例添加路由:

子網路由表

您還需要為實例禁用源/目標檢查,否則 AWS 將不允許 EC2 實例 IP 到它的任何其他 IP 的流量。

源/目標檢查

然後當然你必須打開實例安全組,如果適用的話,它的本地防火牆(例如iptables)允許10.8.0.0/24.

希望有幫助:)

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