腾讯云服务器CentOS8-Wireguard的配置

本文详细指导了在腾讯云CentOS服务器上安装Wireguard,解决yum问题,并配置多用户环境,包括服务器端和客户端的配置,Windows与iOS的连接设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、服务器的配置

1.解决腾讯云服务器CentOS系统,yum指令由于无法正常使用的问题:
https://blog.youkuaiyun.com/qq_31876443/article/details/125157730?spm=1001.2014.3001.5502

2.安装Wireguard
sudo yum install yum-utils epel-release
sudo yum-config-manager --setopt=centosplus.includepkgs=“kernel-plus, kernel-plus-*” --setopt=centosplus.enabled=1 --save
sudo sed -e ‘s/^DEFAULTKERNEL=kernel-core$/DEFAULTKERNEL=kernel-plus-core/’ -i /etc/sysconfig/kernel
sudo yum install kernel-plus wireguard-tools
sudo reboot

3.执行以下命令(不一定需要)
ip link add dev wg0 type wireguard
ip address add dev wg0 192.168.2.1 peer 192.168.2.2
ip link set up dev wg0

3.cd /etc/wireguard

4.生成密钥
wg genkey | tee sprivatekey | wg pubkey > spublickey
wg genkey | tee cprivatekey | wg pubkey > cpublickey

5.打开防火墙转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
echo “net.ipv4.ip_forward = 1” >> /etc/sysctl.conf
sysctl -p

6.编写服务器配置文件(摘自csdn:https://blog.youkuaiyun.com/x_mm_c/article/details/117999495)

echo "[Interface]
# 服务器的私匙,对应客户端配置中的公匙(自动读取上面刚刚生成的密匙内容)
PrivateKey = $(cat sprivatekey)
# 本机的内网IP地址,一般默认即可,除非和你服务器或客户端设备本地网段冲突
Address = 10.0.0.1/24 
# 运行 WireGuard 时要执行的 iptables 防火墙规则,用于打开NAT转发之类的。
# 如果你的服务器主网卡名称不是 eth0 ,那么请修改下面防火墙规则中最后的 eth0 为你的主网卡名称。
PostUp   = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# 停止 WireGuard 时要执行的 iptables 防火墙规则,用于关闭NAT转发之类的。
# 如果你的服务器主网卡名称不是 eth0 ,那么请修改下面防火墙规则中最后的 eth0 为你的主网卡名称。
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
# 服务端监听端口,可以自行修改
ListenPort = 443
# 服务端请求域名解析 DNS
DNS = 8.8.8.8
# 保持默认
MTU = 1420
# [Peer] 代表客户端配置,每增加一段 [Peer] 就是增加一个客户端账号,具体我稍后会写多用户教程。
[Peer]
# 该客户端账号的公匙,对应客户端配置中的私匙(自动读取上面刚刚生成的密匙内容)
PublicKey = $(cat cpublickey)
# 该客户端账号的内网IP地址
AllowedIPs = 10.0.0.2/32"|sed '/^#/d;/^\s*$/d' > wg0.conf

7.编写客户端的配置文件

echo "[Interface]
# 客户端的私匙,对应服务器配置中的客户端公匙(自动读取上面刚刚生成的密匙内容)
PrivateKey = $(cat cprivatekey)
# 客户端的内网IP地址
Address = 10.0.0.2/24
# 解析域名用的DNS
DNS = 8.8.8.8
# 保持默认
MTU = 1420
[Peer]
# 服务器的公匙,对应服务器的私匙(自动读取上面刚刚生成的密匙内容)
PublicKey = $(cat spublickey)
# 服务器地址和端口,下面的 X.X.X.X 记得更换为你的服务器公网IP,端口请填写服务端配置时的监听端口
Endpoint = X.X.X.X:443
# 因为是客户端,所以这个设置为全部IP段即可
AllowedIPs = 0.0.0.0/0, ::0/0
# 保持连接,如果客户端或服务端是 NAT 网络(比如国内大多数家庭宽带没有公网IP,都是NAT),那么就需要添加这个参数定时链接服务端(单位:秒),如果你的服务器和你本地都不是 NAT 网络,那么建议不使用该参数(设置为0,或客户端配置文件中删除这行)
PersistentKeepalive = 25"|sed '/^#/d;/^\s*$/d' > client.conf

8.若有多个客户端需要连接(如电脑、手机同时连接到服务器),则根据以下步骤来:
8.1.
cd /etc/wireguard

8.2.再次生成密钥
wg genkey | tee cprivatekey1 | wg pubkey > cpublickey1

8.3.输出public key,然后复制它
cat cpublickey1

8.3.在目录下的wg0.conf文件末尾,添加以下内容:
[Peer]
PublicKey = <你刚才复制的public key>
AllowedIPs = 10.0.0.3/32(继续添加则:10.0.0.4, 10.0.0.5 …)

8.4.再次编写客户端文件

echo "[Interface]
# 客户端的私匙,对应服务器配置中的客户端公匙(自动读取上面刚刚生成的密匙内容)
PrivateKey = $(cat cprivatekey1)
# 客户端的内网IP地址(如果上面你添加的内网IP不是 .3 请自行修改)
Address = 10.0.0.3/24
# 解析域名用的DNS
DNS = 8.8.8.8
# 保持默认
MTU = 1420
[Peer]
# 服务器的公匙,对应服务器的私匙(自动读取上面刚刚生成的密匙内容)
PublicKey = $(cat spublickey)
# 服务器地址和端口,下面的 X.X.X.X 记得更换为你的服务器公网IP,端口请填写服务端配置时的监听端口
Endpoint = X.X.X.X:443
# 因为是客户端,所以这个设置为全部IP段即可
AllowedIPs = 0.0.0.0/0, ::0/0
# 保持连接,如果客户端或服务端是 NAT 网络(比如国内大多数家庭宽带没有公网IP,都是NAT),那么就需要添加这个参数定时链接服务端(单位:秒),如果你的服务器和你本地都不是 NAT 网络,那么建议不使用该参数(设置为0,或客户端配置文件中删除这行)
PersistentKeepalive = 25"|sed '/^#/d;/^\s*$/d' > client1.conf

9.重启一次Wireguard
wg-quick down wg0
wg-quick up wg0

10.查看当前Wireguard状态
wg

11.设置开机启动
systemctl enable wg-quick@wg0

至此配置完成,接下来要配置客户端,这里介绍Windows和IOS系统的配置方法。

二、Windows客户端配置

1.下载Wireguard windows版
https://download.wireguard.com/windows-client/
32位的不成功就试下安装64位的。
用服务器的浏览器去访问这个网址,然后用mobaxterm的SSH Browser把.msi安装文件下载到电脑上。

2.把(一)中配置好的客户端配置文件(client.conf)下载到电脑上。

3.安装Wireguard后,点击左下角的新建隧道,然后点击从文件导入隧道,选择client.conf。

4.然后点击连接就可以用了。

三、IOS客户端配置

1.需要一个US AppStore账户。在AppStore里登陆上去。

2.搜索Wireguard,安装。

3.在服务器端,输入以下命令:
yum install qrencode
cd /etc/wireguard/
qrencode -t ansiutf8 < client.conf

4.可以看到命令行会输出一个QR码,用wireguard app扫一下,然后连接就行了。

四、用一台linux连接到该服务器

在这台linux机器上(Ubuntu):

  1. sudo apt install wireguard
  2. sudo apt install resolvconf
  3. 复制上面的client.conf到/etc/wireguard下
  4. ss -n sport 22
  5. ip route get <SSH连接到这台linux机器的ip> sport 22
  6. sudo ip route add <SSH连接到这台linux机器的ip> via <local address 列的IP> dev eth0
  7. sudo systemctrl start wg-quick@client1.service
    4~6参考:https://superuser.com/questions/1746580/how-can-i-exclude-ssh-connections-from-being-routed-by-wireguard
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值