阿里云ECS的外网端口设置
2017-03-25 本文已影响5928人
杨梅泡酒
公司的服务器采用阿里云的ECS,通过以下命令查看系统的Linux内核版本与发行版本:
- 查看内核版本
<code>#uname -a</code>
<code>Linux AY140607183050278fb7Z 3.2.0-29-generic #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux</code> - 查看发行版本
<code>#cat /proc/version</code>
<code>Linux version 3.2.0-29-generic (buildd@allspice) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012</code>
根据显示的结果,ECS服务器采用Ubuntu 2012年的Linux发行版本,Linux的内核版本为3.2.0。根据以往经验,首先检查系统默认防火墙(Ubuntu自带默认的防火墙为:UFW)是否开启,利用以下命令:
<code>#sudo ufw status</code>
<code>Status: inactive</code>
发现系统的防火墙处于关闭状态,那么就无须考虑防火墙对端口的控制了。那么就需要考虑iptables的端口设置规则,使用以下命令显示与iptables相关信息:
<code>/sbin# ll iptables</code>
<code>
lrwxrwxrwx 1 root root 13 Dec 10 2011 iptables -> xtables-multi
lrwxrwxrwx 1 root root 13 Dec 10 2011 iptables-restore -> xtables-multi*
lrwxrwxrwx 1 root root 13 Dec 10 2011 iptables-save -> xtables-multi*
-rwxr-xr-x 1 root root 87592 Mar 24 19:35 iptables.bak*
</code>
根据以上的信息可以看出系统使用了iptables,利用以下命令开放端口8000:
<code>/sbin# iptables -A INPUT -p tcp --dport 20 -j ACCEPT</code>
保存修改:
<code>/sbin# iptables-save</code>
利用python自带的http服务器启动对端口8000的监听:
<code>
/# python -m SimpleHTTPServer 8000
</code>
在客户端机器上利用telnet命令检测端口是否开放成功:
<code>telnet 服务器IP 8000</code>
结果发现telnet可以成功打开窗口:
telnet 成功窗口 - windows
此外网上有朋友说,对于阿里云ECS需要通过控制台设置来实现公网端口的开放,设置的地方如下:
安全策略设置
自己刚开始也设置了访问的安全组策略,不过发现这样的设置没有什么效果。