环境

Ubuntu 20.04.4 LTS

kvm 架构VPS

服务器配置不高

openvpn安装(服务端)

我比较懒,所以用的一键脚本安装的。

使用工具:

openvpn-install/README-zh.md at master · hwdsl2/openvpn-install (github.com)

下载安装脚本(注意辨别文件内容)

1
wget -O openvpn.sh https://get.vpnsetup.net/ovpn

运行脚本自定义安装

1
sudo bash openvpn.sh

image-20240920094029957

没有绑定域名 N

image-20240920094122192

UDP快,TCP稳定,两个自己选,我这里选了TCP

image-20240920094205504

更改监听端口,不要使用默认端口,改大一点。

image-20240920094253829

默认 2

image-20240920094318106

image-20240920094334255

等待十几秒,openvpn安装完成后会根据上述配置生成一个ovpn配置文件

这个时候ifconfig看一下,会有一个tun0的新网卡,这是openvpn的虚拟网卡

image-20240920101125135

光安装完还不够,还需要配置nat转发

1
2
3
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source x.x.x.x

x.x.x.x为vps的公网ip地址,eth0为出网的网卡,请根据自己本机配置修改(一般可能是eth0,ens33,这个网卡的ip有的vps是内网ip,有的是公网ip

第一条命令启用ip转发

第二条命令对来自 10.8.0.0/24 网段的出站流量进行源地址伪装(NAT),并将其通过 eth0 网卡发送到外网。

第三条命令对来自 10.8.0.0/24 网段的出站流量进行源地址转换(SNAT),并将源地址转换为指定的 IP 地址(x.x.x.x)。

因为虚拟网卡没有直通外网,所以需要将此网卡的流量转发到出网网卡,达成以VPS公网ip出网

openvpn安装(客户端)

我是在win11安装openvpn。

版本为OpenVPN 2.6.12

下载地址:

Community Downloads - Open Source VPN | OpenVPN

一直下一步下一步即可。

然后将服务端安装时生成的ovpn文件双击点开,客户端软件会导入此配置文件,后续使用直接连接服务器即可。

踩坑

1.openvpn客户端下载错了

正确的版本是如下这个

image-20240920100313387

不要下载这个:

OpenVPN Connect - 适用于 Windows 的客户端软件 |OpenVPN

image-20240920100716458

这个连接不上服务器的,我的报错内容是

1
socket_protect error

2.nat转发没配置

nat转发没配置会导致的现象是:

能够连接上openvpn,但是连接上之后访问不了外网,ping不通其他外网ip,只能ping通vps的ip。

说明流量没有被VPS转发出去,还在VPS里打转。

参考文章

在vps上自己搭建vpn——openvpn的搭建与配置 | 伪技术の宅 (liujason.com)

Openvpn问题导致我掉了三根头发-CSDN博客