我正在使用以下 iptables 规则尝试允许从一个 IP 地址访问端口 8080:
iptables -A INPUT -s 12.34.56.78 -p tcp -m tcp --dport 8080 -j ACCEPT
但是,这条规则不起作用。如果我删除该-s 12.34.56.78
部分,它就可以正常工作,但它允许任何人访问端口 8080(这不是我想要的)。
当我iptables -L
应用上述规则后运行时,我得到以下结果(这让我很困惑 - 为什么它不只是显示源中的实际 IP?):
root@wso-solr:/etc# iptables -L 链输入(策略接受) 目标 保护 优化 源 目标 接受所有 -- 任何地方 任何地方 接受 tcp -- host-12-34-56-78.host.com 任何地方 tcp dpt:http-alt 接受 tcp -- 任何地方 任何地方 tcp dpt:ssh 接受所有 -- 任何地方任何地方状态 RELATED,ESTABLISHED DROP all -- 任何地方 链转发(策略接受) 目标 保护 优化 源 目标 链输出(策略接受) 目标 保护 优化 源 目标
我想知道这是否可能是某种 DNS 异常,导致 iptables 看到我的特定服务器的错误 IP 地址/DNS 条目(它返回 host-ip.host.com 作为源而不是 IP 地址...)。
答案1
看来我使用了错误的 IP 地址。我的托管服务提供商确定了我的 VPS 所在服务器的真实 IP。我输入了该 IP,一切就都正常了!