文章介绍:上一篇文章中介绍了云上的vyos对接本地内网的vyos实现海外加速访问,但是大多数读者都不会vyos软路由的配置,所以本次我们把云上的vyos改成ubuntu系统,还是使用wireguard协议,与其上一篇【Vyos-开源篇-6】Vyos+GoBGP+SmartDNS 实现智能分流对比,其他方式都不变。
一、Vultr安装Ubuntu
二、Ubuntu-更新-安全加固-性能优化
2.1、更新系统
sudo apt update;sudo apt upgrade -y
2.2、安装iptables-persistent
sudo apt install -y iptables-persistent
2.3、安装工具包
apt install -y net-tools
2.4、安装swap和fail2ban
wget -O box.sh https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh && chmod +x box.sh && clear && ./box.sh
2.4.1、swap
2.4.2、fail2ban
./box.sh
wget https://raw.githubusercontent.com/FunctionClub/Fail2ban/master/uninstall.sh && bash uninstall.sh
三、Ubuntu部署WireGuard
3.1、安装
sudo apt install -y wireguard
3.2、进入wireguard目录
cd /etc/wireguard/
3.3、设置权限
在 Linux 中,默认的文件权限是 666,目录权限是 777。但是,应用程序通常不希望新文件和目录具有这么开放的权限,因此可以使用 umask
命令来限制它们的权限。
可以使用、umask
命令用来屏蔽文件或目录的权限,其工作原理是将所设置的权限从系统默认权限中去除。例如,如果设置 umask 077
,那么新创建的文件权限将会是 666 - 077 = 600
,新创建的目录权限将会是 777 - 077 = 700
。
换句话说,umask 077
表示新创建的文件权限将是 600(所有者可读写,其他用户没有权限),新创建的目录权限将是 700(所有者具有读、写和执行权限,其他用户没有权限)。
umask 077
3.4、生成公私钥
wg genkey | tee privatekey | wg pubkey > publickey
3.5、查看公钥
cat publickey
root@ubuntu:/etc/wireguard# cat publickey
d79CoZCexe6dVn2FAQB9A2bDPyMfBohiviVyBMet9Ck=
3.6、查看私钥
cat privatekey
root@ubuntu:/etc/wireguard# cat privatekey
cCohLNtyQ47Q7UIzxVzPG6Ko4GtAVaZgJBs6fVj1sGk=
3.7、创建wg0
nano wg0.conf
[Interface]
PrivateKey = <Ubuntu的私钥>
Address = 100.255.1.1/30
ListenPort = ubuntu的wireguard公网端口 #自定义(UDP端口,默认是51820)
PostUp = sysctl -w net.ipv4.ip_forward=1
PostUp = iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE
PostUp = iptables -A FORWARD -o wg0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1360
PostDown = iptables -D FORWARD -o wg0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1360
MTU = 1420
[Peer]
PublicKey = <VyOS的公钥>
AllowedIPs = 100.255.1.2/32
Endpoint = ubuntu公网IP:ubuntu的wireguard公网端口
3.8、wg0开机自启
sudo systemctl enable wg-quick@wg0
四、VyOS配置WireGuard
4.1、生成公私钥
vyos@vyos:~$ generate pki wireguard key-pair
Private key: kG585DSBE2h1e5+fjJmoJjzVJkdLNvJz6zqBGTbWwVU= #私钥
Public key: zQBjCJm3zyTnUz8ScT5MUbOV27CvlAKkQn0Xrp2DxQ8= #公钥
4.2、配置wg0接口
set interfaces wireguard wg0 address '100.255.1.2/30'
set interfaces wireguard wg0 peer ubuntu address '64.176.42.129'
set interfaces wireguard wg0 peer ubuntu allowed-ips '0.0.0.0/0'
set interfaces wireguard wg0 peer ubuntu port '61740'
set interfaces wireguard wg0 peer ubuntu public-key 'd79CoZCexe6dVn2FAQB9A2bDPyMfBohiviVyBMet9Ck='
set interfaces wireguard wg0 port '61740'
set interfaces wireguard wg0 private-key 'kG585DSBE2h1e5+fjJmoJjzVJkdLNvJz6zqBGTbWwVU='
4.3、开启Ubuntu的wg0
sudo systemctl start wg-quick@wg0
五、VyOS完整配置
set interfaces ethernet eth0 address '10.225.97.9/24'
set interfaces wireguard wg0 address '100.255.1.2/30'
set interfaces wireguard wg0 peer ubuntu address '64.176.42.129'
set interfaces wireguard wg0 peer ubuntu allowed-ips '0.0.0.0/0'
set interfaces wireguard wg0 peer ubuntu port '61740'
set interfaces wireguard wg0 peer ubuntu public-key 'd79CoZCexe6dVn2FAQB9A2bDPyMfBohiviVyBMet9Ck='
set interfaces wireguard wg0 port '61740'
set interfaces wireguard wg0 private-key 'kG585DSBE2h1e5+fjJmoJjzVJkdLNvJz6zqBGTbWwVU='
set nat source rule 100 outbound-interface name 'wg0'
set nat source rule 100 translation address 'masquerade'
set protocols static route 0.0.0.0/0 next-hop 100.255.1.1
set protocols static route 64.176.42.129/32 next-hop 10.225.97.1
set system name-server '8.8.8.8'
六、GoBGP
其他
sudo ufw disable