WireGuard:修订间差异
跳到导航
跳到搜索
此页面具有访问限制。如果您看见此消息,则说明您没有权限访问此页面。
(→設定) |
(→設定) |
||
(未显示同一用户的4个中间版本) | |||
第20行: | 第20行: | ||
* VPN B的內網在<code>192.168.1.0/24</code>,對外IP是<code>5.6.7.8</code>。 | * VPN B的內網在<code>192.168.1.0/24</code>,對外IP是<code>5.6.7.8</code>。 | ||
先設定系統,允許IP forwarding: | 先設定系統, 先在<code>/etc/sysctl.d/99-net.conf</code>內設定 允許IP forwarding: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="ini"> | ||
net.ipv4.ip_forward=1 | net.ipv4.ip_forward=1 | ||
net.ipv6.conf.all.forwarding=1 | net.ipv6.conf.all.forwarding=1 | ||
<syntaxhighlight> | </syntaxhighlight> | ||
接著執行生效: | |||
<syntaxhighlight lang="bash"> | |||
sudo sysctl -p /etc/sysctl.d/99-net.conf | |||
</syntaxhighlight> | |||
先產生對應的Private Key與Public Key: | 先產生對應的Private Key與Public Key: | ||
第67行: | 第73行: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
接著就可以測試是否通了: | 接著就可以 用ping 測試 跨網段時 是否通了 (先在wireguard主機上面測,再到其他機器上面測試): | ||
<syntaxhighlight lang="bash"> | |||
ping 192.168.0.1 | |||
ping 192.168.1.1 | |||
</syntaxhighlight> | |||
再來設定[[iptables]]防火牆,預設阻擋,後續再開放對應的連線: | |||
<syntaxhighlight lang="bash"> | |||
sudo iptables -A FORWARD -i wg -j DROP | |||
</syntaxhighlight> | |||
然後可以用iptables-persistent把這組iptables設定在開機時自動套用 : | |||
<syntaxhighlight lang="bash"> | |||
sudo apt install -y iptables-persistent | |||
</syntaxhighlight> | |||
== 外部連結 == | == 外部連結 == |
2023年6月26日 (一) 09:22的最新版本
WireGuard是一套VPN软件。
安装
在Ubuntu 22.04上可以直接安装:
sudo apt install -y wireguard
设定
设定档都在/etc/wireguard
下。
Site-to-site
这边假设的环境是:
- VPN A的内网在
192.168.0.0/24
,对外IP是1.2.3.4
。 - VPN B的内网在
192.168.1.0/24
,对外IP是5.6.7.8
。
先设定系统,先在/etc/sysctl.d/99-net.conf
内设定允许IP forwarding:
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
接着执行生效:
sudo sysctl -p /etc/sysctl.d/99-net.conf
先产生对应的Private Key与Public Key:
wg genkey | sudo tee /etc/wireguard/wg.key | wg pubkey | sudo tee /etc/wireguard/wg.pub; sudo chmod 600 /etc/wireguard/wg.key
接下是/etc/wireguard/wg.conf
,在Interface
这段都是放自己的资讯,Peer
这段都是放对方的资讯(PublicKey
可以从对方机器上的/etc/wireguard/wg.pub
取得):
[Interface]
PostUp = wg set %i private-key /etc/wireguard/%i.key
Address = 192.168.0.200
ListenPort = 51820
[Peer]
PublicKey = G9colAlX0xdAO+v8Nme4JobfprXWB442WEOChvQjx3c=
AllowedIPs = 192.168.1.0/24
Endpoint = 5.6.7.8:51820
另外一边则会是:
[Interface]
PostUp = wg set %i private-key /etc/wireguard/%i.key
Address = 192.168.1.200
ListenPort = 51820
[Peer]
PublicKey = yTC1O+ckZ9tcKAsDpDnx0XQmTg06rJa3z8xk8mEFUy0=
AllowedIPs = 192.168.0.0/24
Endpoint = 1.2.3.4:51820
然后设定开机跑起来并且设定启动,两台机器都要跑:
sudo systemctl enable --now wg-quick@wg
接着就可以用ping测试跨网段时是否通了(先在wireguard主机上面测,再到其他机器上面测试):
ping 192.168.0.1
ping 192.168.1.1
再来设定iptables防火墙,预设阻挡,后续再开放对应的连线:
sudo iptables -A FORWARD -i wg -j DROP
然后可以用iptables-persistent把这组iptables设定在开机时自动套用:
sudo apt install -y iptables-persistent
外部链接
- 官方网站 (英文)