文章介绍:上一篇文章中介绍了云上的vyos对接本地内网的vyos实现海外加速访问,但是大多数读者都不会vyos软路由的配置,所以本次我们把云上的vyos改成ubuntu系统,还是使用wireguard协议,与其上一篇【Vyos-开源篇-6】Vyos+GoBGP+SmartDNS 实现智能分流对比,其他方式都不变。
一、Vultr安装Ubuntu {#一-Vultr安装Ubuntu}
二、Ubuntu-更新-安全加固-性能优化 {#二-Ubuntu-更新-安全加固-性能优化}
2.1、更新系统 {#2-1-更新系统}
sudo apt update;sudo apt upgrade -y
2.2、安装iptables-persistent
{#2-2-安装}
sudo apt install -y iptables-persistent
2.3、安装工具包 {#2-3-安装工具包}
apt install -y net-tools
2.4、安装swap和fail2ban {#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-1-swap}
2.4.2、fail2ban {#2-4-2-fail2ban}
以防失联,修改完端口后,第一次打开的窗口别关闭,然后用新窗口登录服务器验证是否可以用新端口登录
./box.sh
wget https://raw.githubusercontent.com/FunctionClub/Fail2ban/master/uninstall.sh && bash uninstall.sh
三、Ubuntu部署WireGuard {#三-Ubuntu部署WireGuard}
3.1、安装 {#3-1-安装}
sudo apt install -y wireguard
3.2、进入wireguard目录 {#3-2-进入wireguard目录}
cd /etc/wireguard/
3.3、设置权限 {#3-3-设置权限}
在 Linux 中,默认的文件权限是 666,目录权限是 777。但是,应用程序通常不希望新文件和目录具有这么开放的权限,因此可以使用 umask
命令来限制它们的权限。
可以使用、umask
命令用来屏蔽文件或目录的权限,其工作原理是将所设置的权限从系统默认权限中去除。例如,如果设置 umask 077
,那么新创建的文件权限将会是 666 - 077 = 600
,新创建的目录权限将会是 777 - 077 = 700
。
换句话说,umask 077
表示新创建的文件权限将是 600(所有者可读写,其他用户没有权限),新创建的目录权限将是 700(所有者具有读、写和执行权限,其他用户没有权限)。
umask 077
3.4、生成公私钥 {#3-4-生成公私钥}
wg genkey | tee privatekey | wg pubkey > publickey
3.5、查看公钥 {#3-5-查看公钥}
cat publickey
root@ubuntu:/etc/wireguard# cat publickey
d79CoZCexe6dVn2FAQB9A2bDPyMfBohiviVyBMet9Ck=
3.6、查看私钥 {#3-6-查看私钥}
cat privatekey
root@ubuntu:/etc/wireguard# cat privatekey
cCohLNtyQ47Q7UIzxVzPG6Ko4GtAVaZgJBs6fVj1sGk=
3.7、创建wg0 {#3-7-创建wg0}
nano wg0.conf
填入以下信息,其中vyos的公钥还没有,先不写,enp1s0是ubuntu上网口名称,可以通过:ip addr 查看。
[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开机自启 {#3-8-wg0开机自启}
sudo systemctl enable wg-quick@wg0
四、VyOS配置WireGuard {#四-VyOS配置WireGuard}
4.1、生成公私钥 {#4-1-生成公私钥}
在VyOS上生成WireGuard密钥对
vyos@vyos:~$ generate pki wireguard key-pair
Private key: kG585DSBE2h1e5+fjJmoJjzVJkdLNvJz6zqBGTbWwVU= #私钥
Public key: zQBjCJm3zyTnUz8ScT5MUbOV27CvlAKkQn0Xrp2DxQ8= #公钥
4.2、配置wg0接口 {#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 {#4-3-开启Ubuntu的wg0}
sudo systemctl start wg-quick@wg0
五、VyOS完整配置 {#五-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 {#六-GoBGP}
Ubuntu中运行GoBGP+GeoIP跟VyOS中一样,请看下面的教程。
Vyos-开源篇-6】Vyos+GoBGP+SmartDNS 实现智能分流
其他 {#其他}
如果发现VyOS不能上网,请关闭防火墙。
sudo ufw disable