我位于防火墙后面,我不知道如何找出必须为某个应用程序打开哪个 IP/端口。就我目前的情况而言,它是电报。
我没有找到任何“允许这些 IP/端口”的文档。我找到了与电报相关的 IP 范围,但当我使用sudo tcpdump -i <iface> -nn -s 0 -v > /tmp/tcpDump
并生成一些传出流量时,我找不到任何这些 IP。这就是我的“知识”的终点。
我如何才能找到防火墙上需要配置的内容?(当然,我想听到与电报相关的答案,但我更想知道这个问题通常是如何解决的)。
答案1
我不太熟悉电报,所以这是从管理员对端口进行常规故障排除的角度来看的。
大多数应用程序通常都有文档说明需要启用哪些功能才能使应用程序正常运行。通常,您只需谷歌搜索“使用哪些端口”即可找到端口、IP 和 FQDN 列表。在您的特定示例中,谷歌搜索结果显示以下内容:https://core.telegram.org/bots/webhooks
Webhook 需要服务器上有一个开放端口。我们目前支持以下端口:443、80、88 和 8443。其他端口不受支持,无法使用。请确保您的机器人在其中一个受支持的端口上运行,并且可以通过其公共地址访问该机器人。
默认情况下,这意味着我们正在通过 443 端口敲你的门
获得此端口信息后,您通常会进行测试,看看我的设备是否可以到达所述侦听器。我首选的方法,我真正相信是最简单的方法之一,是尝试通过该端口 telnet 连接到主机。无论他们是否设置了 telnet 服务器,您都可以验证目标是否有效。因此,在 Windows 服务器上,我会启动命令提示符并尝试远程登录 149.154.167.197 443. 在所有 Linux 发行版中,您都可以使用相同的命令远程登录 149.154.167.197 443。如果您收到回复,您可以缩小范围,确定问题出在源的某个地方,或者那不是您需要的端口。
如果你找不到任何文档,或者它似乎不起作用,你可以搜索你的活动连接。在 Windows 上,您可以通过启动应用程序,然后打开命令提示符并运行命令来执行此操作网络状态监测。Netstat 是一个显示设备上 TCP 连接信息的命令。在大多数 Linux 发行版中,您可以使用更强大的nstat -a来自 iproute2。
这应该可以解决您几乎每次都找不到端口的问题。如果没有最后一个主要工具是下载数据包分析工具,例如 ngrep 或 wireshark,然后手动分析来自设备的流量。如果您知道源/目的地,通常可以很快找到它。
最后要注意的是,在任何事情发生之前,如果它要通过互联网传输,它很有可能会使用端口 80 (http) 或 443 (https),除非它使用不同的协议,否则这可能是第一个猜测。