WireGuard杂记

本文最后更新于:2023年7月10日 上午

安装WireGuard

通过密钥对安装

1
2
3
wg genkey | tee aliyun_privatekey | wg pubkey > aliyun_publickey
wg genkey | tee thinkpad_privatekey | wg pubkey > thinkpad_publickey

通过wg-gen-web安装

1
docker run  --name wg-web -itd -v /etc/wireguard:/data -p 8080:8080 -e "WG_CONF_DIR=/data" vx3r/wg-gen-web:latest

使用docker部署

1
2
3

docker run -d --network=host --name=wireguard --cap-add=NET_ADMIN --cap-add=SYS_MODULE --restart unless-stopped linuxserver/wireguard

使用k8s部署

Deployment

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
apiVersion: apps/v1
kind: Deployment
metadata:
name: wg-deployment
spec:
selector:
matchLabels:
app: wg
replicas: 1
template:
metadata:
labels:
app: wg
spec:
containers:
- name: wg
image: linuxserver/wireguard
securityContext:
capabilities:
add: # 添加
- NET_ADMIN
hostNetwork: true

Pod

1
2
3
4
5
6
7
8
9
10
11
12
13
apiVersion: v1
kind: Pod
metadata:
name: wireguard
spec:
containers:
- name: wireguard
image: linuxserver/wireguard
securityContext:
capabilities:
add: # 添加
- NET_ADMIN
hostNetwork: true

通过WireGuard访问节点内局域网内ip

使用iptables实现,需开启开启IP地址转发

1
2
3
4
5
6
7
# 在需要使用的节点添加如下配置
# xxx 为对应的网卡名
PostUp = iptables -A FORWARD -i %i -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o xxx -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o xxx -j MASQUERADE

常用命令

WireGuard常用命令

1
2
3
4
5
6
7
8
9
10
11
# 启动server端
systemctl start wg-quick@wg0
# 新建节点后需要重启服务
systemctl restart wg-quick@wg0
# 查询网卡信息
wg show wg0

sudo apt install wireguard
wg-quick up wg0
wg-quick down wg0

其他命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 清除iptables规则:
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X

# 清除ip6tables规则:
ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT
ip6tables -t nat -F
ip6tables -t mangle -F
ip6tables -F
ip6tables -X

# 使用tcpdump监听client网口icmp包
tcpdump -i client icmp

# 开启IP地址转发
sysctl -w net.ipv4.ip_forward=1
#查询ip地址转发是否开启
sysctl net.ipv4.ip_forward

注意点

  • 使用公网服务时,记得放开WireGuard使用的UDP端口
  • WireGuard未内置,则需要先安装(sudo apt install wireguard)

References


WireGuard杂记
https://baymax55.github.io/2022/09/13/other/WireGuard杂记/
作者
baymax55
发布于
2022年9月13日
许可协议