Wireguard笔记(二) 命令行操作
目录
Wireguard笔记(一) 节点安装配置和参数说明
Wireguard笔记(二) 命令行操作
Wireguard笔记(三) lan-to-lan子网穿透和多网段并存
命令行操作
创建wg0网卡, 并设置wireguard参数
ip link add dev wg0 type wireguard
ip address add dev wg0 10.8.1.1/24
wg set wg0 listen-port 7777
wg set wg0 private-key /etc/wireguard/privatekey
wg set wg0 peer CbX0FSQ7W2LNMnozcMeTUrru6me+Q0tbbIfNlcBzPzs= allowed-ips 192.168.20.0/24,10.8.1.2/32 endpoint networkB.company.com:8888
ip link set up wg0
配置完基础参数后, 先保存设置
touch /etc/wireguard/wg0.conf
wg-quick save wg0
然后用wg-quick就可以开启/关闭wg0网卡了
wg-quick down wg0
wg-quick up wg0
使用这种方式, wg-quick把大部分操作细节都封装好了, 通过简单的命令可以创建网卡, 分配地址和修改系统路由表.
如果你需要将wireguard设置为服务, 让它开机自动启动wg0, 可以通过这个命令
systemctl enable wg-quick@wg0 --now
命令行操作(使用wireguard-go)
对于某些环境不适合用原生wireguard的, 可以使用wireguard-go代替, wireguard-go只是用于创建wg网卡, 其他的命令还是用wg来完成的. 以下是纯命令行的操作.
wireguard-go创建网口, 配置IP
# 使用wireguard-go生成虚拟网卡
sudo ./wireguard-go wg0
# 查看创建的网卡
ip link
ip link show dev "wg0"
# 删除创建的网卡
sudo ip link del wg0
# 给虚拟网卡添加地址
sudo ip address add dev wg0 10.253.0.4/24
sudo ip -4 address add dev "wg0" "10.253.0.4/24"
# 删除地址
sudo ip addr del dev wg0 192.168.0.193/24
wg对wg0进行配置
# 生成服务端的公私钥
wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
# 设置监听端口
sudo wg set wg0 listen-port 50001
# 设置节点私钥
sudo wg set wg0 private-key /etc/wireguard/privatekey
# 查看wg状态
sudo wg
# 或者
sudo wg show
# 查看wg配置 - 这个会输出格式化的配置信息, 可以存为conf文件
sudo wg showconf wg0
# 从wg0.conf.bak载入配置到wg0, 会覆盖当前配置, 且重置当前的连接
sudo wg setconf wg0 wg0.conf.bak
# 从wg0.conf.bak的配置添加到wg0
sudo wg addconf wg0 wg0.conf.additional
# 从wg0.conf.bak中读取配置, 将变化部分应用到wg0, 不如setconf高效, 但是不会影响到当前存在的会话
sudo wg syncconf wg0 wg0.conf.additional
# 启动虚拟网卡
sudo ip link set dev wg0 up
# 断开网卡
sudo ip link set dev wg0 down
# 添加远程节点 (此时远程节点也要添加对应此节点的配置)
sudo wg set wg0 peer PasdfeghBb+kadem7JVtbjh1oRv75Ysc123451iSnM= allowed-ips 192.168.36.0/24,10.253.0.0/24 endpoint 114.104.11.76:50001 persistent-keepalive 30
# ping检查(远程节点IP), 远程也ping此节点检查
ping 10.253.0.1
# 删除远程节点
sudo wg set <interface> peer <key> remove
配置路由和iptables
# 增加本地路由至虚拟网卡
sudo ip -4 route add "192.168.36.0/24" dev "wg0" table "$TABLE"
sudo ip route add 192.168.36.0/24 dev wg0
# 删除路由
sudo ip route del 192.168.36.0/24 dev wg0
# ping检查
ping 192.168.36.109
# 增加iptables规则(如果需要从远程访问本地子网)
iptables -A FORWARD -i wg0 -j ACCEPT
iptables -A FORWARD -o wg0 -j ACCEPT
iptables -A -t nat POSTROUTING -o eth0 -j MASQUERADE
ip6tables -A FORWARD -i wg0 -j ACCEPT
ip6tables -A FORWARD -o wg0 -j ACCEPT
ip6tables -A -t nat POSTROUTING -o eth0 -j MASQUERADE
# 对应的删除命令
iptables -D FORWARD -i wg0 -j ACCEPT
iptables -D FORWARD -o wg0 -j ACCEPT
iptables -D -t nat POSTROUTING -o eth0 -j MASQUERADE
ip6tables -D FORWARD -i wg0 -j ACCEPT
ip6tables -D FORWARD -o wg0 -j ACCEPT
ip6tables -D -t nat POSTROUTING -o eth0 -j MASQUERADE