centos7安装wireguard组建内网

系统:centos7.x

内核要求:>3.10 (uname -r)

 

1.服务端安装(推荐linux)

以下三种方式,任选其一

 

Method 1: a signed module is available as built-in to CentOS's kernel-plus:

$ sudo yum install yum-utils epel-release
$ sudo yum-config-manager --setopt=centosplus.includepkgs=kernel-plus --enablerepo=centosplus --save
$ sudo sed -e 's/^DEFAULTKERNEL=kernel$/DEFAULTKERNEL=kernel-plus/' -i /etc/sysconfig/kernel
$ sudo yum install kernel-plus wireguard-tools
$ sudo reboot

Method 2: users wishing to stick with the standard kernel may use ELRepo's pre-built module:

 

$ sudo yum install epel-release elrepo-release
$ sudo yum install yum-plugin-elrepo
$ sudo yum install kmod-wireguard wireguard-tools

Method 3: users running non-standard kernels may wish to use the DKMS package instead:

 

$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ sudo curl -o /etc/yum.repos.d/jdoss-wireguard-epel-7.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
$ sudo yum install wireguard-dkms wireguard-tools

其它系统安装请参考:https://www.wireguard.com/install/

 

2.生成密钥对

cd /etc/wireguard  
# 如果目录不存在请手动创建:
mkdir /etc/wireguard
# 开始生成 密匙对(公匙+私匙)。
wg genkey | tee privatekey-server | wg pubkey > publickey-server 
# 生成服务端密钥对
wg genkey | tee privatekey-client | wg pubkey > publickey-client 
# 生成客户端密钥对

3.配置服务端文件

vim /etc/wireguard/wg0.conf输入以下内容

[Interface]
Address = 10.100.0.1/16  # 这里指的是使用 10.100.0.1,网段大小是 16 位
SaveConfig = true
ListenPort = 51820  # 监听的 UDP 端口
PrivateKey = < 这里填写 Server 上 privatekey 的内容 >
# 下面这两行规则允许访问服务器的内网,注意替换`eth0`
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

# Client,可以有很多 Peer
[Peer]
PublicKey = < 这里填写 Client 上 publickey 的内容 >
AllowedIPs = 10.100.0.2/32  # 这个 Peer 只能是 10.100.0.2/32
# 如果想把所有流量都通过服务器的话,这样配置:
# AllowedIPs = 0.0.0.0/0, ::/0

4.启停服务端

systemctl enable wg-quick@wg0 #开机启动
wg-quick up wg0    #启动服务端
wg-quick down wg0  #停止服务端
wg #查看节点列表
wg syncconf wg0 < $(wg-quick strip wg0)  #重载配置文件,不影响已有连接.

5.配置客户端文件

[Interface]
PrivateKey = < 这里填写 Client 上 privatekey 的内容 >
Address = 10.100.0.2/32
DNS = 8.8.8.8  # 连接后使用的 DNS, 如果要防止 DNS 泄露,建议使用内网的 DNS 服务器

[Peer]
PublicKey = < 这里填写 Server 上 publickey 的内容 >
Endpoint = 1.1.1.1:51820  # 服务端公网暴露地址,51280 是上面指定的
AllowedIPs = 10.100.0.0/16,172.17.0.11/20  # 指定要访问的服务端网段,或者设置0.0.0.0/0来进行全局代理.
PersistentKeepalive = 25

然后复制文件内容到各客户端即可.

 

客户端下载地址:https://www.wireguard.com/install/

 

FAQ

1.无法访问服务端内网

# 开启内核转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
iptables -A FORWARD -i wg0 -j ACCEPT
iptables -t nat -A POSTROUTING -j MASQUERADE

 

 

 

 

转载自https://www.cnblogs.com/jonnyan/p/14110061.html

添加新评论 »