51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

【Vyos-开源篇-7】- Vyos 和 Ubuntu 使用 WireGuard 互联

文章介绍:上一篇文章中介绍了云上的vyos对接本地内网的vyos实现海外加速访问,但是大多数读者都不会vyos软路由的配置,所以本次我们把云上的vyos改成ubuntu系统,还是使用wireguard协议,与其上一篇【Vyos-开源篇-6】Vyos+GoBGP+SmartDNS 实现智能分流对比,其他方式都不变。

一、Vultr安装Ubuntu {#一-Vultr安装Ubuntu}

yydy_2024-05-07_22-30-17

yydy_2024-05-07_22-32-17

二、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}

yydy_2024-05-07_22-47-20

yydy_2024-05-07_22-47-33

yydy_2024-05-07_22-47-50

yydy_2024-05-07_22-47-20

yydy_2024-05-07_22-48-21

2.4.2、fail2ban {#2-4-2-fail2ban}

以防失联,修改完端口后,第一次打开的窗口别关闭,然后用新窗口登录服务器验证是否可以用新端口登录

./box.sh
wget https://raw.githubusercontent.com/FunctionClub/Fail2ban/master/uninstall.sh && bash uninstall.sh

yydy_2024-05-07_22-51-14

yydy_2024-05-07_22-54-11

三、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'
`

yydy_2024-05-08_00-27-42

六、GoBGP {#六-GoBGP}

Ubuntu中运行GoBGP+GeoIP跟VyOS中一样,请看下面的教程。

Vyos-开源篇-6】Vyos+GoBGP+SmartDNS 实现智能分流

其他 {#其他}

如果发现VyOS不能上网,请关闭防火墙。

sudo ufw disable
赞(2)
未经允许不得转载:工具盒子 » 【Vyos-开源篇-7】- Vyos 和 Ubuntu 使用 WireGuard 互联