OPENVZ架构VPS使用wireguard

众所周知wireguard是基于Linux内核实现的,并且在Linux5.6被合并进主线
KVM或者XEN架构VPS只要升级内核版本并安装wireguard-tools即可使用
但OPENVZ架构的VPS不支持内核版本升级,所以只能使用wireguard-go来替代内核模块的功能,性能自然是不如内核模块的实现,但速度尚可

获取wireguard-go

自行编译或者直接获取二进制文件
考虑到OPENVZ机型普遍的小内存,小硬盘和低性能,建议直接获取二进制可执行文件

编译

WireGuard/wireguard-go

git clone https://git.zx2c4.com/wireguard-go
cd wireguard-go
make

二进制

P3TERX/wireguard-go-builder/Releases

wget https://github.com/P3TERX/wireguard-go-builder/releases/download/0.0.20211016/wireguard-go-linux-amd64.tar.gz
tar -xzf wireguard-go-linux-amd64.tar.gz

wireguard-go使用

通过编译或者下载得到wireguard-go这个可执行文件之后要怎么用呢?
wireguard-go只在新建虚拟网卡时起作用,所以还要安装wireguard-tools来运用wireguard
这一步只需要将二进制文件移动到/usr/local/bin,供wg-quick无法调用内核模块时fallback即可

chmod +x wireguard-go
mv wireguard-go /usr/local/bin/

wireguard-tools安装

apt install wireguard-tools

apt可能会自动安装新版本的内核,但因为架构限制,那个内核是无法启用的,无视即可

配置文件

此时wg-quick,wg等命令都可以使用了
下面贴上配置示例

密钥生成

wg genkey | tee privatekey | wg pubkey > publickey

服务器

新建配置文件

nano /etc/wireguard/wg0.conf

enp0s3替换成自己的网卡名称,如果是NAT小鸡还要把端口换成商家提供的可使用端口之一

[Interface]
PrivateKey = VPN服务器私钥
Address = fdc9:281f:04d7:9ee9::1,10.0.0.1/32
ListenPort = 51820
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE; ip6tables -A FORWARD -i %i -j ACCEPT; ip6tables -A FORWARD -o %i -j ACCEPT; ip6tables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o enp0s3 -j MASQUERADE; ip6tables -D FORWARD -i %i -j ACCEPT; ip6tables -D FORWARD -o %i -j ACCEPT; ip6tables -t nat -D POSTROUTING -o enp0s3 -j MASQUERADE

[Peer]
PublicKey = 客户端公钥
AllowedIPs = fdc9:281f:04d7:9ee9::2,10.0.0.2/32
PresharedKey = 与客户端一致

/etc/sysctl.conf添加下面两行启用转发

net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1

使改动生效

sysctl -p

防火墙端口放行

ufw allow 51820/udp

客户端

[Interface]
PrivateKey = 客户端私钥
Address = fdc9:281f:4d7:9ee9::2/128, 10.0.0.2/32
DNS = 2001:4860:4860::8888, 8.8.8.8

[Peer]
PublicKey = VPN服务器公钥
PresharedKey = 与VPN服务器一致
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 服务器IP:51820

启动

wg-quick up wg0

这样在无法调用内核模块的时候,会自动fallback调用wireguard-go代替内核实现,这样应该能顺利跑起来了
需要作为服务启动的话

systemctl enable wg-quick@wg0
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇