我刚刚安装了装有 raspbian 操作系统的 raspberry pi。除了安装 LAMP 和 syncthing 之外,我没有对初始设置进行太多更改。
我正在通过 LAN 上的 SSH 访问我的 raspi,并且希望通过 LAN 上设备上的 Web 浏览器查看 Syncthing GUI。
Syncthing GUI 在端口 8384 上运行。
我已经验证 syncthing 运行正常,并且我可以通过本地浏览器访问它。
为了能够访问 LAN 上的端口,我使用以下行配置了 iptables:
iptables -A INPUT -p tcp --dport 8384 -s 192.168.0.0/24 -j ACCEPT
但是,当我尝试通过输入机器的 IP 地址和端口号从网络上的其他设备访问 syncthing GUI 时,仍然会收到“错误:连接被拒绝”的提示,如下所示:192.168.1.24:8384
192.168.1.24:80 顺利提供 LAMP 欢迎页面。
我遗漏了哪些步骤?
该论坛上有一些类似的问题和答案,但没有一个能解决我的具体情况。
我很可能遗漏了一些基本步骤,因为我之前没有使用过 iptables。
答案1
syncthing 过程必须监听所有可用的本地 IP 地址的连接,而不仅仅是环回地址。
这配置文件应该有这样一行
<gui enabled="true" tls="false">
<address>0.0.0.0:8384</address>
不是
<gui enabled="true" tls="false">
<address>127.0.0.1:8384</address>
文档解释了这一点:
地址
设置监听地址。必须存在一个或多个地址元素。允许的地址格式为:IPv4 地址和端口(127.0.0.1:8384)
地址和端口按给定的方式使用。IPv6 地址和端口 ([::1]:8384)
地址和端口按给定的方式使用。地址必须用方括号括起来。通配符和端口(0.0.0.0:12345,[::]:12345,:12345)
它们是等效的,并将导致 Syncthing 在所有接口以及 IPv4 和 IPv6 上进行监听。
请注意所有接口。
环回地址 127.0.0.1排除连接请求到达任何其他真实/物理/虚拟网络接口卡。环回地址的目的就是只允许来自同一台计算机的连接。