我已经设置了我的 Raspberry Pi 来为我的网络服务器运行 Nginx。我的公共 IP 显示我在其上创建的第一个网站(域文件夹),这发生在端口 80 上。
现在我已经将 vsftpd 设置为我的 FTP 服务器,但是我只能通过我的本地 IP 以及我的用户名和密码在我的本地网络上连接它。
我是否需要对 Pi 的设置做些什么来解决这个问题?(我的 SSH 连接也只能通过本地网络进行。)
答案1
不。您需要通过路由器转发端口(可能是 21)。就这么简单。
这里不可能提供每个路由器的确切说明,但有一个网站专门回答那个问题。
答案2
除非你在树莓派上运行防火墙,否则你不需要在树莓派上做任何事情。
基本上,您必须在路由器级别设置 PAT,以允许公共地址空间从路由器公共 IP 地址到达您机器的所需端口,然后在同一设备上设置防火墙规则。
因此,如果您想从公共地址空间使用 ssh 进行远程连接,则必须对 TCP 端口 22 执行此操作。
如果您希望以相同的方式访问 FTP 服务,则需要对 TCP 端口 21 执行相同的操作,另外:
- 如果您的 FTP 客户端使用主动模式,请允许您的树莓派机器使用源 TCP 端口 20(防火墙规则)访问您的客户端的 IP。
- 如果您的 FTP 客户端使用被动模式,请允许您的 Raspberry Pi 在您的 TCP 本地端口范围内访问(PAT + 防火墙规则,您可以使用
pasv_min_port
和在 vsftpd 中配置该端口范围pasv_max_port
)。