You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

配置OpenVPN作为反向VPN网关的技术求助

嘿,我来帮你搞定这个反向OpenVPN隧道的配置!既然你已经在AWS实例上搭好了常规OpenVPN服务,笔记本也能正常接入,那咱们就把反向隧道的剩余配置补全,实现那种类似“随身接入点”的远程访问功能:

第一步:调整OpenVPN服务器核心配置

首先找到AWS实例上的OpenVPN主配置文件(一般是/etc/openvpn/server.conf),先确保服务器的IP转发功能已经开启:

  • 执行命令验证:sysctl net.ipv4.ip_forward,如果输出是net.ipv4.ip_forward = 1就没问题;如果不是,编辑/etc/sysctl.conf,把net.ipv4.ip_forward=1的注释去掉,再执行sysctl -p让配置生效。

接着在server.conf里添加反向隧道相关的关键配置:

# 指定客户端专属配置目录,用来给反向客户端设置路由规则
client-config-dir /etc/openvpn/ccd
# 声明反向客户端所在的子网段(和常规客户端子网区分开,比如常规是10.8.0.0/24,反向用10.8.1.0/24)
route 10.8.1.0 255.255.255.0
# 把反向子网路由推送给所有常规VPN客户端,让它们知道怎么访问反向设备
push "route 10.8.1.0 255.255.255.0"
# 允许VPN客户端之间互相通信(常规客户端和反向设备需要互通)
client-to-client

然后创建刚才指定的客户端配置目录:

mkdir -p /etc/openvpn/ccd
chown nobody:nogroup /etc/openvpn/ccd
第二步:给反向客户端配置专属路由规则

/etc/openvpn/ccd目录下,创建一个以反向客户端**Common Name(CN)**命名的文件(比如你的反向设备客户端CN是remote-dropbox,就创建/etc/openvpn/ccd/remote-dropbox),写入以下内容:

# 给反向客户端分配固定IP地址,方便服务器识别
ifconfig-push 10.8.1.10 255.255.255.0
# 告诉服务器:访问反向设备所在局域网的流量,都转发给这个客户端(假设反向设备的局域网是192.168.3.0/24)
iroute 192.168.3.0 255.255.255.0
第三步:修改反向客户端的.ovpn配置文件

把你之前生成的客户端配置文件调整一下,确保它能主动连接到AWS服务器并建立反向隧道:

client
dev tun
proto udp
remote [你的AWS实例公网IP] 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
auth SHA256
verb 3
# 让客户端接受服务器推送的路由规则
pull
# 如果反向设备在NAT网络后面,添加这行确保连接稳定
explicit-exit-notify 1

把这个配置文件传到你的反向设备上,启动OpenVPN客户端:openvpn --config reverse-client.ovpn

第四步:验证反向隧道连通性

从你的笔记本(已接入常规VPN)尝试ping反向设备所在局域网的设备,比如ping 192.168.3.1。如果能通,说明反向隧道已经生效;如果不通,检查这几点:

  • AWS实例的安全组是否允许UDP 1194端口的入站流量(反向设备需要主动连接服务器)
  • 服务器的iptables是否配置了正确的转发规则,比如:
    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -d 192.168.3.0/24 -j MASQUERADE
    
  • 反向设备的本地防火墙是否允许来自VPN子网(10.8.0.0/24、10.8.1.0/24)的流量

内容的提问来源于stack exchange,提问作者GarrukApex

火山引擎 最新活动