wireguard-linux配置
WireGuard安装与配置(基于Ubuntu20.04)
这是一篇有关wg的安装和配置。,已经写好的配置文件Index of /wireguard
安装(apt安装)我来自未来
首先直接用apt包对其进行安装
1
| sudo apt-get install wireguard
|
设置IPV6和IPV4转发
修改/etc/sysctl.conf,加入以下设置 1 2 3 4 5
| net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.default.disable_ipv6=1 net.ipv6.conf.lo.disable_ipv6=1 net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1
|
启动以下命令,使得上面的转发生效
生成wireguard的配置文件
生成配置文件,主要涉及到两个,一个是server,一个是client,当然,实际上wireguard没有故意去区分,所以,直接给出成功的wireguard配置文件参考模仿
server端设置
首先,明确server只需要配置/etc/wireguard/wg0.conf,配置如下:
1 2 3 4 5 6 7 8 9 10 11 12
| [Interface] Address = 192.168.54.1/32, fd23:23:23::2/64 ListenPort = 53 PrivateKey = yLT6hNoogQ4BMGS/TDT2cGqSXdkuf2MpqFRXczc8oXw= PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o enp67s0 -j MASQUERADE; ip6tables -A FORWARD -i %i -j ACCEPT; ip6tables -t nat -A POSTROUTING -o enp67s0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o enp67s0 -j MASQUERADE; ip6tables -D FORWARD -i %i -j ACCEPT; ip6tables -t nat -D POSTROUTING -o enp67s0 -j MASQUERADE
[Peer]
PublicKey = U7AReWrgC+ONXLzuh7wgCArXyJ7IGj3/KX/Z+QWnxHY= PresharedKey = LBrEthBo4GySJzr9p/KdtGJPnskEmc43FNvXaCEml4s= AllowedIPs = 192.168.54.3/32,fd23:23:23::4/64
|
Interface设置了server在虚拟组网中的ip,需要设置ipv4地址,ipv6地址,监听端口53(DNS端口,可以帮助绕过认证),公私密钥需要自己生成,建议使用linuxserver/wireguard生成,然后直接复制conf文件夹的相关配置即可,其linuxserver/wireguard的使用方法(docker-compose.yaml)如下:
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 27
| version: '3' services: wireguard: image: linuxserver/wireguard container_name: wireguard cap_add: - NET_ADMIN - SYS_MODULE environment: - PUID=1011 - PGID=1001 - TZ=Asia/Shanghai - SERVERURL=lab-v4.ninglang.fun - SERVERPORT=53 - PEERS=oneplus,yzmin,ninglang,tabs7,hk,visitor1, - PEERDNS=8.8.8.8 - INTERNAL_SUBNET=192.168.54.0/24 - ALLOWEDIPS=0.0.0.0/0,::/0 ports: - "53:51820/udp" volumes: - ./config:/config - ./modules:/lib/modules sysctls: - net.ipv4.conf.all.src_valid_mark=1 restart: unless-stopped
|
除此之外iptables -t nat -A POSTROUTING -o enp67s0 -j MASQUERADE中enp67s0是服务器的网卡,需要通过ip route命令来判断和识别,找出出口网卡
Client配置
客户端的配置相对比较简单,配置文件如下 1 2 3 4 5 6 7 8 9 10 11
| [Interface] PrivateKey = yHFElIC927hOYA8cKVx9SmumTZSUbVXvX1xToIwITHQ= ListenPort = 51820 Address = 192.168.54.3/32, fd23:23:23::4/64 DNS = 114.114.114.114, 2400:3200::1
[Peer] PublicKey = nqUnrvuMl9NsugP4JbNdiw3o9Fgsr7eSrnEGg0Yhtzk= PresharedKey = LBrEthBo4GySJzr9p/KdtGJPnskEmc43FNvXaCEml4s= AllowedIPs = 0.0.0.0/0, ::/0 Endpoint = lab-v4.ninglang.fun:53
|
主要是利用上面的docker容器生成之后就可以了,但是有一些需要注意 1. Address需要加入手动分配的v6部分 2. DNS一定要要配置 3. AllowedIPs建议全部放行(即为/0) 3. server端的设置中千万不要设置AllowedIPs=0.0.0.0/0!!!!否则Ubuntu自己的网络流量也无法出去(直接流向了wg0,形成环路)
docker对ipv6的影响
对于docker而言,docker的网络改变将会直接改变iptables,因此,当设备无法访问ipv6时一定要注意查看是否是docker-user导致的
输入
1
| ip6tables -t filter -L -n
|

查看FORWARD CHAIN,如果这个CHAIN中DOCKER-USER排在第一,则会导致ipv6失败,因此,需要添加一句来使得DOCKER-USER的降低到第二句即可
1
| ip6tables -t filter -I FORWARD -j ACCEPT
|
特殊设备下的ipv6转发设置
这里主要描述的arm设备的ipv6访问情况,以hinas为例,我发现其和实验室服务器(x64)有所不同,主要体现在以下几点
- hinas的ipv6怎么开?
参考网上,最重要的一点就是修改/etc/network/interfaces.d/eth0,在其里面添加一句
并且修改/etc/sysctl.conf,在其中添加net.ipv6.conf.all.disable_ipv6 = 0.除此之外,需要开启ipv6的转发,而无需开启ipv4的转发,这是因为有关ipv4和ipv6的设置在/proc/sys/net/文件夹中,其具体细节如下图。

因此,对于ipv4的ip_forwading功能而言是一直启动的,而对于ipv6而言则要分很多网卡来确定

首先对于ipv6的conf中可以看出,有all,eth0和wg0,故如果要设置ipv6全部转发,则可以设置ipv6全部转发,但是对于eth0而言,一般全部转发会影响到物理机自身的ipv6网络,因此,对于这种情况下,给出了eth0之外所有的网口设置转发是最好的选择,于是设置如下代码

修改文件/etc/sysctl.conf
1 2
| net.ipv6.conf.all.forwarding = 1 net.ipv6.conf.eth0.forwarding = 0
|
ip6tables更新设置
由上面的内容可以知道,每次要使得ip6tables能够正常转发,必须使用
1
| ip6tables -t filter -I FORWARD -j ACCEPT
|
经过测试原有的
1
| ip6tables -A FORWARD -i %i -j ACCEPT
|
经过系统参数替换之后变为如下情况
1
| ip6tables -A FORWARD -i wg0 -j ACCEPT
|
但是这条命令并没有作用,因此在原有的配置中使用ip6tables -t filter -A FORWARD -j ACCEPT,代替ip6tables -A FORWARD -i %i -j ACCEPT,除此之外,对于删除wg0网卡时,使用ip6tables -t filter -D FORWARD -j ACCEPT代替ip6tables -D FORWARD -i %i -j ACCEPT
对于新朋友(YSU可用)
建议直接采用openvpn,登录之后共享实验室的流量账号,部分请参考
你好
Wireguard windwos使用
有时候我们会在特定的机器下安装wireguard后,并不想被随意的更改(不被容易发现),就需要让wireguard以windows服务的形式去运行。正常安装wireguard windows版本,然后不要打开Wireguard UI。我们用命令行形式去安装通道服务。不过你得提前准备好配置文件,复制到磁盘上某个位置。安装Tunnel Service服务命令如下:
1
| wireguard /installtunnelservice D:\wg\hinas.conf
|
开机自启动
- 配置文件
对于hinas.conf,配置如下
1 2 3 4 5 6 7 8 9 10 11
| [Interface] PrivateKey = CFI82HDnrAAJtBRfaHu9JntX9AQoy+ezyDtlBFFSIVw= ListenPort = 51820 Address = 192.168.54.3/32, fd23:23:23::3/128 DNS = 8.8.8.8
[Peer] PublicKey = nqUnrvuMl9NsugP4JbNdiw3o9Fgsr7eSrnEGg0Yhtzk= PresharedKey = LBrEthBo4GySJzr9p/KdtGJPnskEmc43FNvXaCEml4s= AllowedIPs = 10.17.182.214/32, 192.168.54.1/24 Endpoint = 10.17.182.109:53
|
为什么在EndPoint参数这里没有使用域名呢,是因为如果使用域名的话,这个无法直接DNS解析出来,导致连接失败,这个可以通过wireguard的日志看出,所以这里建议直接使用IP.
- 设置任务计划程序
打开任务计划程序,新建一个任务,在操作中设置,设置脚本程序为wireguard的地址
1
| "C:\Program Files\WireGuard\wireguard.exe"
|
在参数中设置开启服务和配置文件
1
| /tunnelservice "D:\wg\hinas.conf"
|
常规中设置如下图
计划任务设置
开机自启动设置记录:2025-11-14-14-42
这次使用设置的方法如下:
- 直接在wireguard里面设置连接(选择v6,我也不知道为什么不支持v4)
- 找到服务中的wireguardmanger个wireguardTunnel两个服务,设置方式如下图,两个都要设置:发现这样就可以正常工作了
image-20251114144541812
Wirguard设置问题1
问题
在使用wireguard实现学校B和家A里的组网的时候,我发现我无法通过wg访问家里ip192.168.1.0/24的部分端口,这个问题很奇怪,也很隐蔽,因为只有部分ip会出现这个情况,而不是所有1.0/24ip,经过排查,B访问.25服务器时确实实现了正常路由,192.168.1.1里面也设置了静态路由,那么之所以出现这个问题,是因为家庭的linux服务器没有设置如下规则
1
| iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
|
是 Linux 系统中用于配置 NAT(网络地址转换) 的一条 iptables 规则,它的作用是让从 ens3 接口发出的数据包自动进行 地址伪装(Masquerading) 。
1 2 3
| [WireGuard客户端] ↓ (192.168.54.x) [wg-school 接口] → [Linux 路由器] → [ens3 接口] → 局域网(192.168.1.0/24)
|
当你在这台“Linux 路由器”上添加了这条规则后:
- 来自 WireGuard 客户端(如 192.168.54.10)的请求被转发到局域网设备(如 192.168.1.25)
- 局域网设备响应时会把回复发给路由器(因为静态路由或默认网关指向它)
- 路由器收到响应后,需要将源地址(比如 192.168.1.25)返回给 WireGuard 客户端(192.168.54.10)
- 因为 WireGuard 客户端不能直接理解 192.168.1.x 的地址,所以路由器会对这个回程流量做 MASQUERADE:
- 把源地址改成自己的
ens3 接口的 IP(比如 192.168.1.16)
- 确保响应能正确回到 WireGuard 客户端
image-20250513214334590
对网络进行抓包如上图,这是通过192.168.54.1对192.168.1.25:80进行请求,可以查看,现在的流量不在识别为192.168.54.1,而是直接转发给192.168.1.16
解决方案
在配置文件中加入如下命令,这部分放在Interface下:
1 2 3 4 5 6 7
| [Interface] Address = 192.168.54.17/32, fd23:23:23::17/128 PrivateKey = DNS = 114.114.114.114, 2400:3200::1 MTU = 1420 PostUp = iptables -w -A FORWARD -i %i -j ACCEPT; iptables -w -A FORWARD -o %i -j ACCEPT; iptables -w -t nat -A POSTROUTING -o ens3 -j MASQUERADE; ip6tables -A FORWARD -i %i -j ACCEPT; ip6tables -A FORWARD -o %i -j ACCEPT; ip6tables -t nat -A POSTROUTING -o ens3 -j MASQUERADE; PostDown = iptables -w -D FORWARD -i %i -j ACCEPT; iptables -w -D FORWARD -o %i -j ACCEPT; iptables -w -t nat -D POSTROUTING -o ens3 -j MASQUERADE; ip6tables -D FORWARD -i %i -j ACCEPT; ip6tables -D FORWARD -o %i -j ACCEPT; ip6tables -t nat -D POSTROUTING -o ens3 -j MASQUERADE;
|
针对Tailscale和Wg联合的方式实现
由于学校的v6消失了,所以从家到学校这块不能使用v6,只能是TS组网了,现在拓扑如下 
在这种拓扑下,原来的wg的配置如下
1 2 3 4
| PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i %i -j ACCEPT; ip6tables -A FORWARD -o %i -j ACCEPT; ip6tables -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; ip6tables -D FORWARD -i %i -j ACCEPT; ip6tables -D FORWARD -o %i -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE;
|
这种方式会把原来的192.168.1.1的流量包丢到eth0,但是这个端口无法访问,所以应该将192.168.1.1和192.168.10.1丢到Tailscale0网口,故应该进行如下的一个修改,其他的不变,因为其他的还要访问外网,ip6tables也不变。测试可行
1 2 3
| PostUp = iptables -A FORWARD -i %i -o tailscale0 -d 192.168.1.0/24 -j ACCEPT; iptables -A FORWARD -i %i -o tailscale0 -d 192.168.10.0/24 -j ACCEPT; iptables -A FORWARD -i tailscale0 -s 192.168.1.0/24 -o %i -m state --state RELATED,ESTABLISHED -j ACCEPT; iptables -A FORWARD -i tailscale0 -s 192.168.10.0/24 -o %i -m state --state RELATED,ESTABLISHED -j ACCEPT; iptables -t nat -A POSTROUTING -s 192.168.54.0/24 -d 192.168.1.0/24 -o tailscale0 -j MASQUERADE; iptables -t nat -A POSTROUTING -s 192.168.54.0/24 -d 192.168.10.0/24 -o tailscale0 -j MASQUERADE; ip6tables -A FORWARD -i %i -j ACCEPT; ip6tables -A FORWARD -o %i -j ACCEPT; ip6tables -t nat -A POSTROUTING -o tailscale0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -o tailscale0 -d 192.168.1.0/24 -j ACCEPT; iptables -D FORWARD -i %i -o tailscale0 -d 192.168.10.0/24 -j ACCEPT; iptables -D FORWARD -i tailscale0 -s 192.168.1.0/24 -o %i -m state --state RELATED,ESTABLISHED -j ACCEPT; iptables -D FORWARD -i tailscale0 -s 192.168.10.0/24 -o %i -m state --state RELATED,ESTABLISHED -j ACCEPT; iptables -t nat -D POSTROUTING -s 192.168.54.0/24 -d 192.168.1.0/24 -o tailscale0 -j MASQUERADE; iptables -t nat -D POSTROUTING -s 192.168.54.0/24 -d 192.168.10.0/24 -o tailscale0 -j MASQUERADE; ip6tables -D FORWARD -i %i -j ACCEPT; ip6tables -D FORWARD -o %i -j ACCEPT; ip6tables -t nat -D POSTROUTING -o tailscale0 -j MASQUERADE
|
可选(关闭NetworkManger对Wg的管理)
创建:
1
| sudo nano /etc/NetworkManager/conf.d/10-ignore-wg0.conf
|
写入
1 2
| [keyfile] unmanaged-devices=interface-name:wg0
|
保存之后退出:
1
| sudo systemctl restart NetworkManager
|
具体原理图
考虑到现在组网方案已经比较复杂,由于发现192.168.1.1无法访问edunetwork,所以继续修改如下
EcoPaste_fsN6VCkzFAzoR_CF2j-ev
这次的主要改变在A端,主要是对A端的访问B网络做了调整,之前的wg可以访问B端,但是我这次将B的allowip修改为只允许54.17(我懒得改回来了)所以我决定在A端修改这个,使得对所有A→B的流量实现一个伪装,假装都是192.168.54.17访问的。
多跳组网实现
image-20251128220238080
首先,对于这种模式下,如果Peer1是Linux,那么开启转发,使用和Server一样PostDown的配置应该可以work,但是如果Peer1是windows,那么配置如下
Peer1的WG设置,公钥在Windows最上面,这个需要填到Peer2和Server的Peer栏中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| [Interface] PrivateKey = ListenPort = 53 Address = 192.168.54.18/32, 192.168.64.18/32, fd23:23:23::18/128 DNS = 114.114.114.114, 2400:3200::1
[Peer] PublicKey = 来自Server PresharedKey = AllowedIPs = 192.168.54.18/24, 192.168.1.18/24, 192.168.10.18/24 Endpoint = hinas-v4.ninglang.top:53 PersistentKeepalive = 16
[Peer] PublicKey = 来自Peer2 AllowedIPs = 192.168.64.20/32 PersistentKeepalive = 16
|
对于Peer2来说,应该这样填写,这里就不需要Server的了,主要原因是Server不是连不上嘛,干脆直接连接Peer1
1 2 3 4 5 6 7 8 9 10 11 12
| [Interface] PrivateKey = ListenPort = 53 Address = 192.168.64.20/32, fd23:23:23::20/128 DNS = 114.114.114.114, 2400:3200::1
[Peer] PublicKey = Peer1的公钥 AllowedIPs = ::/1, 8000::/1, 0.0.0.0/1, 128.0.0.0/1 Endpoint = 10.17.182.214:53 PersistentKeepalive = 16
|
除此之外,如果是Linux,则需要再Peer1开启转发,如果在Windwos下,则需要开启IP转发
1
| reg add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v IPEnableRouter /t REG_DWORD /d 1 /f
|
然后重启,应该可以从Server ping通192.168.64.20了
✔ 开启 IP 转发 ✔ 添加路由 ✔ WireGuard 本身已经连向 Server 与 Peer2
TailScale子网穿透
安装软件登录
在子网的一台机器中输入
1
| tailscale up --advertise-routes=192.168.10.0/24,192.168.1.0/24
|
image-20250812163808522
然后再选择允许即可
image-20250812163855408
WIRGUARD其他配置
设置如下
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235
| PostUp = iptables -w -A FORWARD -i %i -j ACCEPT; iptables -w -A FORWARD -o %i -j ACCEPT; iptables -w -t nat -A POSTROUTING -o ens3 -j MASQUERADE; iptables -w -t nat -A POSTROUTING -o %i -j MASQUERADE; ip6tables -A FORWARD -i %i -j ACCEPT; ip6tables -A FORWARD -o %i -j ACCEPT; ip6tables -t nat -A POSTROUTING -o ens3 -j MASQUERADE; PostDown = iptables -w -D FORWARD -i %i -j ACCEPT; iptables -w -D FORWARD -o %i -j ACCEPT; iptables -w -t nat -D POSTROUTING -o ens3 -j MASQUERADE; iptables -w -t nat -D POSTROUTING -o %i -j MASQUERADE; ip6tables -D FORWARD -i %i -j ACCEPT; ip6tables -D FORWARD -o %i -j ACCEPT; ip6tables -t nat -D POSTROUTING -o ens3 -j MASQUERADE;
PostUp = \
iptables -w -A FORWARD -i %i -j ACCEPT; \
iptables -w -A FORWARD -o %i -j ACCEPT; \
iptables -w -t nat -A POSTROUTING -o ens3 -j MASQUERADE; \
iptables -w -t nat -A POSTROUTING -o %i -j MASQUERADE; \ \
ip6tables -A FORWARD -i %i -j ACCEPT; \
ip6tables -A FORWARD -o %i -j ACCEPT; \
ip6tables -t nat -A POSTROUTING -o ens3 -j MASQUERADE;
PostDown = \
iptables -w -D FORWARD -i %i -j ACCEPT; \
iptables -w -D FORWARD -o %i -j ACCEPT; \
iptables -w -t nat -D POSTROUTING -o ens3 -j MASQUERADE; \
iptables -w -t nat -D POSTROUTING -o %i -j MASQUERADE; \ \
ip6tables -D FORWARD -i %i -j ACCEPT; \
ip6tables -D FORWARD -o %i -j ACCEPT; \
ip6tables -t nat -D POSTROUTING -o ens3 -j MASQUERADE;
PostUp = \
iptables -A FORWARD -i %i -o tailscale0 -d 192.168.1.0/24 -j ACCEPT; \
iptables -A FORWARD -i %i -o tailscale0 -d 192.168.10.0/24 -j ACCEPT; \ \
iptables -A FORWARD -i tailscale0 -s 192.168.1.0/24 -o %i -m state --state RELATED,ESTABLISHED -j ACCEPT; \
iptables -A FORWARD -i tailscale0 -s 192.168.10.0/24 -o %i -m state --state RELATED,ESTABLISHED -j ACCEPT; \ \
iptables -t nat -A POSTROUTING -s 192.168.54.0/24 -d 192.168.1.0/24 -o tailscale0 -j MASQUERADE; \
iptables -t nat -A POSTROUTING -s 192.168.54.0/24 -d 192.168.10.0/24 -o tailscale0 -j MASQUERADE; \ \
ip6tables -A FORWARD -i %i -j ACCEPT; \
ip6tables -A FORWARD -o %i -j ACCEPT; \ \
ip6tables -t nat -A POSTROUTING -o tailscale0 -j MASQUERADE;
PostDown = \
iptables -D FORWARD -i %i -o tailscale0 -d 192.168.1.0/24 -j ACCEPT; \
iptables -D FORWARD -i %i -o tailscale0 -d 192.168.10.0/24 -j ACCEPT; \ \
iptables -D FORWARD -i tailscale0 -s 192.168.1.0/24 -o %i -m state --state RELATED,ESTABLISHED -j ACCEPT; \
iptables -D FORWARD -i tailscale0 -s 192.168.10.0/24 -o %i -m state --state RELATED,ESTABLISHED -j ACCEPT; \ \
iptables -t nat -D POSTROUTING -s 192.168.54.0/24 -d 192.168.1.0/24 -o tailscale0 -j MASQUERADE; \
iptables -t nat -D POSTROUTING -s 192.168.54.0/24 -d 192.168.10.0/24 -o tailscale0 -j MASQUERADE; \ \
ip6tables -D FORWARD -i %i -j ACCEPT; \
ip6tables -D FORWARD -o %i -j ACCEPT; \ \
ip6tables -t nat -D POSTROUTING -o tailscale0 -j MASQUERADE;
[Interface] Address = 192.168.54.1/32, fe80::1111:211:22ff:fe33:4455/64 ListenPort = 53 PrivateKey = yLT6hNoogQ4BMGS/TDT2cGqSXdkuf2MpqFRXczc8oXw= DNS= 114.114.114.114 PostUp = iptables -A FORWARD -i %i -o tailscale0 -d 192.168.1.0/24 -j ACCEPT; iptables -A FORWARD -i %i -o tailscale0 -d 192.168.10.0/24 -j ACCEPT; iptables -A FORWARD -i tailscale0 -s 192.168.1.0/24 -o %i -m state --state RELATED,ESTABLISHED -j ACCEPT; iptables -A FORWARD -i tailscale0 -s 192.168.10.0/24 -o %i -m state --state RELATED,ESTABLISHED -j ACCEPT; iptables -t nat -A POSTROUTING -s 192.168.54.0/24 -d 192.168.1.0/24 -o tailscale0 -j MASQUERADE; iptables -t nat -A POSTROUTING -s 192.168.54.0/24 -d 192.168.10.0/24 -o tailscale0 -j MASQUERADE; ip6tables -A FORWARD -i %i -j ACCEPT; ip6tables -A FORWARD -o %i -j ACCEPT; ip6tables -t nat -A POSTROUTING -o tailscale0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -o tailscale0 -d 192.168.1.0/24 -j ACCEPT; iptables -D FORWARD -i %i -o tailscale0 -d 192.168.10.0/24 -j ACCEPT; iptables -D FORWARD -i tailscale0 -s 192.168.1.0/24 -o %i -m state --state RELATED,ESTABLISHED -j ACCEPT; iptables -D FORWARD -i tailscale0 -s 192.168.10.0/24 -o %i -m state --state RELATED,ESTABLISHED -j ACCEPT; iptables -t nat -D POSTROUTING -s 192.168.54.0/24 -d 192.168.1.0/24 -o tailscale0 -j MASQUERADE; iptables -t nat -D POSTROUTING -s 192.168.54.0/24 -d 192.168.10.0/24 -o tailscale0 -j MASQUERADE; ip6tables -D FORWARD -i %i -j ACCEPT; ip6tables -D FORWARD -o %i -j ACCEPT; ip6tables -t nat -D POSTROUTING -o tailscale0 -j MASQUERADE
[Interface]
Address = 192.168.54.1/32, fe80::1111:211:22ff:fe33:4455/64
ListenPort = 53
DNS= 114.114.114.114
PostUp = \
iptables -A FORWARD -i %i -o tailscale0 -d 192.168.1.0/24 -j ACCEPT; \
iptables -A FORWARD -i %i -o tailscale0 -d 192.168.10.0/24 -j ACCEPT; \ \
iptables -A FORWARD -i tailscale0 -s 192.168.1.0/24 -o %i -m state --state RELATED,ESTABLISHED -j ACCEPT; \
iptables -A FORWARD -i tailscale0 -s 192.168.10.0/24 -o %i -m state --state RELATED,ESTABLISHED -j ACCEPT; \ \
iptables -t nat -A POSTROUTING -s 192.168.54.0/24 -d 192.168.1.0/24 -o tailscale0 -j MASQUERADE; \
iptables -t nat -A POSTROUTING -s 192.168.54.0/24 -d 192.168.10.0/24 -o tailscale0 -j MASQUERADE; \ \
ip6tables -A FORWARD -i %i -j ACCEPT; \
ip6tables -A FORWARD -o %i -j ACCEPT; \ \
ip6tables -t nat -A POSTROUTING -o tailscale0 -j MASQUERADE
PostDown = \
iptables -D FORWARD -i %i -o tailscale0 -d 192.168.1.0/24 -j ACCEPT; \
iptables -D FORWARD -i %i -o tailscale0 -d 192.168.10.0/24 -j ACCEPT; \ \
iptables -D FORWARD -i tailscale0 -s 192.168.1.0/24 -o %i -m state --state RELATED,ESTABLISHED -j ACCEPT; \
iptables -D FORWARD -i tailscale0 -s 192.168.10.0/24 -o %i -m state --state RELATED,ESTABLISHED -j ACCEPT; \ \
iptables -t nat -D POSTROUTING -s 192.168.54.0/24 -d 192.168.1.0/24 -o tailscale0 -j MASQUERADE; \
iptables -t nat -D POSTROUTING -s 192.168.54.0/24 -d 192.168.10.0/24 -o tailscale0 -j MASQUERADE; \ \
ip6tables -D FORWARD -i %i -j ACCEPT; \
ip6tables -D FORWARD -o %i -j ACCEPT; \ \
ip6tables -t nat -D POSTROUTING -o tailscale0 -j MASQUERADE
|