怪猫讲Wireguard(一): 组建内网隧道

文章采用系统版本:Centos 7.7 64 bit,本篇目的是使用两个公网机器组建内网,必要条件,至少要有一台有静态ipv4地址的机器充当网关。

1.简要说明

wireguard可以说是目前最简单的内网穿透方案,类似的很多例如openvpn之列,相对来说配置较复杂点,另外,wireguard的服务端和客户端是相对的,已经安装的wireguard既可以充当客户端也可以充当服务端,重点在于配置。

2.安装wireguard

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 重要!!!先升级系统内核
# 加入wireguard源
sudo curl -Lo /etc/yum.repos.d/wireguard.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
sudo yum install epel-release -y
sudo yum install wireguard-dkms wireguard-tools -y
# 开启ipv4转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
# 创建Publickey和PrivateKey
mkdir /etc/wireguard
cd /etc/wireguard
wg genkey | tee privatekey | wg pubkey > publickey
chmod 777 -R /etc/wireguard
# 编辑配置文件(下面会贴仔细的)
vi /etc/wireguard/wg0.conf
# 创建开机自启并启动
systemctl enable [email protected]
wg-quick up wg0
# 测试是否完成,理应显示为对面ip
curl zx2c4.com/ip

2.1 服务端配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[Interface]
# 为当前服务端分配的内网IP
Address = 10.0.0.1/24
# 端口
ListenPort = 56660
PrivateKey = < 这里填写 Server 上 privatekey 的内容 >
DNS = 8.8.8.8
MTU = 1200


# 如果你有多个客户端,追加多个peer就可以了
[Peer]
PublicKey = < 这里填写 Client 上 publickey 的内容 >
# 哪些IP段可以访问内网
AllowedIPs = 10.0.0.2/32

2.2客户端配置

1
2
3
4
5
6
7
8
9
10
11
12
13
[Interface]
PrivateKey = < 这里填写 Client 上 privatekey 的内容 >
# 为当前客户端分配的内网IP
Address = 10.0.0.2/24
MTU = 1200

[Peer]
PublicKey = <这里填写 Server 上 publickey 的内容>
# 客户端哪些ip通过内网, 服务器慎重开启全局(有可能失联)
# 如果你的客户端是你的电脑(开启全局设置 0.0.0.0/0即可)
AllowedIPs = 10.0.0.0/24
Endpoint = 服务器端的公网IP:端口
PersistentKeepalive = 25

请注意,这种方案的优点在于,任何一台机器想要加入内网,只需要配置好客户端, 作为网关的服务器新增peer即可,但是缺点也很明显,AllowedIPs配置的IP段的任何流量都会经过网关节点,如果你要采用这种方案,请合理设计架构,当然你也可以灵活的相互配置,设立多个网关节点,保证线路不绕路。

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.

评论

You forgot to set the shortname for Disqus. Please set it in _config.yml.
You need to set client_id and slot_id to show this AD unit. Please set it in _config.yml.