Aiv*_*nF. 12 ubuntu vpn wireguard
我的目标是创建一个 VPN,以便
这是服务器的配置:
[Interface]
Address = 10.0.0.1/24
ListenPort = 5555
PrivateKey = xxxxx
[Peer]
PublicKey = xxxxx
AllowedIPs = 0.0.0.0/0
Run Code Online (Sandbox Code Playgroud)
和客户端的配置:
[Interface]
PrivateKey = xxxxx
ListenPort = 5555
Address = 10.0.0.2/32
DNS = 8.8.8.8
[Peer]
PublicKey = xxxxx
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = <server ip>:5555
Run Code Online (Sandbox Code Playgroud)
但是当我尝试加载服务器的配置时,wg setconf wg0 /etc/wireguard/wg0.conf
出现此错误:
Line unrecognized: `Address=10.0.0.1/24'
Configuration parsing error
Run Code Online (Sandbox Code Playgroud)
因此我评论了这一行。但它可能会让 WG 为服务器和客户端选择随机 IP 地址。
为了使 WireGuard 工作,我还运行了以下命令:
ip link add dev wg0 type wireguard
ip address add dev wg0 10.0.0.1/24
ip link set up dev wg0
Run Code Online (Sandbox Code Playgroud)
毕竟,wg
命令提供以下输出:
interface: wg0
public key: xxxxx
private key: (hidden)
listening port: 5555
peer: xxxxx
endpoint: <my IP address>:6228
allowed ips: 0.0.0.0/0
latest handshake: 2 minutes, 11 seconds ago
transfer: 26.02 KiB received, 248 B sent
Run Code Online (Sandbox Code Playgroud)
我可以从客户端(带有 WireGuard GUI 的 MacOS)进行连接,但是:
10.0.0.1
。那么,我怎样才能实现我的目标呢?我的配置有什么问题吗?
附言。iptables
服务器上没有安装防火墙,因此这不会成为问题。另外,我已经net.ipv4.ip_forward=1
在net.ipv6.conf.all.forwarding=1
.
软件版本。操作系统是,内核:,WG:。
/etc/sysctl.conf
Ubuntu 18.04.4 LTS
4.15.0-20-generic
wireguard-tools v1.0.20200206
我Address
从服务器的配置中删除,并AllowedIPs = 10.0.0.2/24
在客户端的配置中进行设置,我终于通过私有IP从客户端连接到服务器的NginX,并且能够访问互联网(因为流量在VPN之外)。
但如果我AllowedIPs = 0.0.0.0/0
在客户端上设置,我就无法访问互联网,但仍然可以通过 VPN 的 IP 地址 10.0.0.1 到达服务器。我尝试用 解决它ifconfig wg0 broadcast/multicast
,但没有成功。现在该命令ip address show wg0
提供以下输出:
4: wg0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet 10.10.10.1/24 scope global wg0
valid_lft forever preferred_lft forever
inet 10.10.10.1 peer 10.10.10.2/32 scope global wg0
valid_lft forever preferred_lft forever
Run Code Online (Sandbox Code Playgroud)
另外,我无法从另一个客户端访问一个客户端,我认为这是同样的问题。如何修复 WireGuard 配置或服务器网络设置来解决该问题?
使用wg-quick
而不是wg
与配置文件一起使用,它会起作用;-)。您写道您正在使用直接wg
命令,该命令使用不同的配置文件格式,导致错误:
Line unrecognized: `Address=10.0.0.1/24,fd86:ea04:1115::1/64'
Configuration parsing error
Run Code Online (Sandbox Code Playgroud)
您还可以检查什么:
拆分地址行以在服务器上进行正确的配置:
[Interface]
Address = 10.0.0.1/24
Address = fd86:ea04:1115::1/64
ListenPort = 5555
PrivateKey = xxxxx
[Peer]
PublicKey = xxxxx
AllowedIPs = 0.0.0.0/0
Run Code Online (Sandbox Code Playgroud)
在客户端,还应该有端点来知道连接的位置,并且网络掩码将与服务器端匹配(相同),因此在本例中为/24:
[Interface]
PrivateKey = xxxxx
ListenPort = 5555
Address = 10.0.0.2/24
DNS = 8.8.8.8
[Peer]
PublicKey = xxxxx
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = <remote>:<ip>
Run Code Online (Sandbox Code Playgroud)
您可以尝试在一行上使用两个地址,但确保两侧的掩码/24应该相同。
好吧,几天几夜,杀了服务器,我自己解决了所有问题:)
首先,我想提一下,wg
实用wg-quick
程序以不同的方式对待配置文件。所以,我的wg setconf wg0 /etc/wireguard/wg0.conf
没有按预期方式工作,我猜它使用旧的配置格式。现在我用的wg-quick
是通过systemctl
.
net.ipv4.ip_forward=1
其次,即使我调用了 ,我对文件的添加也/etc/sysctl.conf
不起作用systemctl daemon-reload ; systemctl restart systemd-networkd
。我必须使用sysctl -p /etc/sysctl.conf
命令将配置与内核链接起来。这允许对等点相互通信并通过 VPN 访问互联网。
值得一提的是,对于所有注释,Address
最好使用 32 位的子网掩码,这意味着精确的 IP,而不是范围。
此外,我还使用 BIND9 设置了自定义 DNS,以在网络中创建自己的域。NginX 会检查发送者的 IP 地址,仅限制对 VPN 客户端的访问。
目前,我的配置如下。
服务器
[Interface]
Address = 10.0.0.1/32
ListenPort = 5555
PrivateKey = ___some_private_key___
# The following is needed only if you have `ufw` installed
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = ___some_public_key___
AllowedIPs = 10.0.0.1/32
Run Code Online (Sandbox Code Playgroud)
客户
[Interface]
PrivateKey = ___some_private_key___
ListenPort = 5555
Address = 10.0.0.1/32
[Peer]
PublicKey = ___some_public_key___
AllowedIPs = 10.0.0.0/24
Endpoint = ___some_ip_address__:5555
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
57081 次 |
最近记录: |