我使用 wireguard 设置了一个名为“wgPrint”的接口,其 ip 地址为 10.0.0.30,所有流量都应转发到我的 HP MFP 打印机 192.168.0.11

wgPrint 接口:

11: wgPrint: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state 
UNKNOWN group default qlen 1000
link/none 
inet 10.0.0.30/32 scope global wgPrint
   valid_lft forever preferred_lft forever

工作组信息:

interface: wgPrint
public key: aGtJTLja+4xxEpEFbhCdAXKvDT0imeWn+kJOLPoOJB0=
private key: (hidden)
listening port: 51920

peer: iAl7D+t1YIPMbFHcCrylsu1M8VAXhKEwPzvv1Bi/Xw0=
endpoint: 192.168.0.30:51820
allowed ips: 10.0.0.2/32
latest handshake: 5 minutes, 45 seconds ago
transfer: 51.92 KiB received, 2.42 KiB sent

iptables-保存:

-A INPUT -i wgPrint -j ACCEPT
-A FORWARD -d 192.168.0.0/24 -i wgPrint -j ACCEPT
-A PREROUTING -i wgPrint -p tcp -j DNAT --to-destination 192.168.0.11
-A PREROUTING -i wgPrint -p udp -j DNAT --to-destination 192.168.0.11
-A POSTROUTING -d 192.168.0.11/32 -p tcp -j SNAT --to-source 10.0.0.30
-A POSTROUTING -d 192.168.0.11/32 -p udp -j SNAT --to-source 10.0.0.30
-A POSTROUTING -s 10.0.0.30/32 -d 192.168.0.11/32 -o wgPrint -j MASQUERADE

我做错了什么,为什么我仍然看不到打印机?

对于任何帮助,我提前谢谢您。

驯兽师


最佳答案
1

我解决了。我在现有的 wireguard 连接中添加了第二个 ip 地址,并删除了“wgPrint”设备。

现在看起来像这样:

6: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none 
inet 10.0.0.1/24 scope global wg0
   valid_lft forever preferred_lft forever
inet 10.0.0.30/32 scope global wg0
   valid_lft forever preferred_lft forever

iptables 规则如下:

-A INPUT -i wg0 -j ACCEPT
-A FORWARD -i wg0 -j ACCEPT
-A PREROUTING -s 10.0.0.30/32 -i wg0 -p tcp -j DNAT --to-destination 192.168.0.11
-A PREROUTING -s 10.0.0.30/32 -i wg0 -p udp -j DNAT --to-destination 192.168.0.11
-A POSTROUTING -d 192.168.0.11/32 -o br0 -p tcp -j SNAT --to-source 10.0.0.30
-A POSTROUTING -d 192.168.0.11/32 -o br0 -p udp -j SNAT --to-source 10.0.0.30  

我在 android 上使用“mopria 扫描”和“mopria 打印”发现自动不起作用,但添加设备地址 192.168.0.11 向我显示了扫描仪和打印机。

为了确保万无一失,我设置了 wireguard VPN 来阻止所有未通过 VPN 的连接。