我在 AWS (Ubuntu 13.04) 上有一个 EC2 服务器。它当前在端口 80 上运行一个网站,我正在尝试设置 SSL。
现在它似乎对端口 443 根本没有响应。
telnet:无法连接到远程主机:连接被拒绝
在 AWS 安全组中,我将其设置为允许端口 443 上的连接。我也相信我修改了 iptables,但也许我做错了。
当我跑步时:
sudo iptables -L -vn
输出如下:
链输入(策略接受2706个数据包,1652K字节) pkts 字节数 目标 协议 选择加入 退出 源 目标 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:443 链转发(策略接受 0 个数据包,0 字节) pkts 字节数 目标 协议 选择加入 退出 源 目标 链输出(策略接受 1331 个数据包,1583K 字节) pkts 字节数 目标 协议 选择加入 退出 源 目标 5153 434K 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
以下是netstat -tlnp
(并非所有进程都能被识别,非自有进程信息 将不会显示,您必须以 root 身份才能看到所有内容。 活动互联网连接(仅限服务器) Proto Recv-Q Send-Q 本地地址 外部地址 状态 PID/程序名称 tcp 0 0 127.0.0.1:58890 0.0.0.0:* 监听 10571/myapp tcp 0 0 0.0.0.0:8080 0.0.0.0:* 侦听 5748/ tcp 0 0 127.0.0.1:49270 0.0.0.0:* 监听 10105/myapp tcp 0 0 0.0.0.0:22 0.0.0.0:* 侦听 - tcp 0 0 127.0.0.1:5432 0.0.0.0:* 侦听 - tcp6 0 0 :::22 :::* 侦听 -
这是我的 /etc/iptables.rules 文件:
# 由 iptables-save v1.4.12 于 2013 年 10 月 6 日星期日 17:03:14 生成 *自然 :预路由接受 [0:0] :输入接受 [0:0] :输出接受 [2:222] :后路由接受 [2:222] -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080 犯罪 # 于 2013 年 10 月 6 日星期日 17:03:14 完成
编辑我更新了 iptables 配置:
sudo iptables -L -vn 链输入(策略接受105个数据包,10377字节) pkts 字节数 目标 协议 选择加入 退出 源 目标 21 1260 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443flags: 0x17/0x02 8 480 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 链转发(策略接受 0 个数据包,0 字节) pkts 字节数 目标 协议 选择加入 退出 源 目标 链输出(策略接受 91 个数据包,21519 字节) pkts 字节数 目标 协议 选择加入 退出 源 目标 14313 1307K 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 5 200 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:443
答案1
您在 iptables 配置中混淆了源端口和目标端口。在输入链中,您必须允许目标端口为 443 的数据包。在输出链中,您必须允许来自端口 443 的流量。