公司的服務器采用阿里云的ECS,通過以下命令查看系統(tǒng)的Linux內核版本與發(fā)行版本:
- 查看內核版本
<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> - 查看發(fā)行版本
<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>
根據(jù)顯示的結果,ECS服務器采用Ubuntu 2012年的Linux發(fā)行版本,Linux的內核版本為3.2.0。根據(jù)以往經(jīng)驗,首先檢查系統(tǒng)默認防火墻(Ubuntu自帶默認的防火墻為:UFW)是否開啟,利用以下命令:
<code>#sudo ufw status</code>
<code>Status: inactive</code>
發(fā)現(xiàn)系統(tǒng)的防火墻處于關閉狀態(tài),那么就無須考慮防火墻對端口的控制了。那么就需要考慮iptables的端口設置規(guī)則,使用以下命令顯示與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>
根據(jù)以上的信息可以看出系統(tǒng)使用了iptables,利用以下命令開放端口8000:
<code>/sbin# iptables -A INPUT -p tcp --dport 20 -j ACCEPT</code>
保存修改:
<code>/sbin# iptables-save</code>
利用python自帶的http服務器啟動對端口8000的監(jiān)聽:
<code>
/# python -m SimpleHTTPServer 8000
</code>
在客戶端機器上利用telnet命令檢測端口是否開放成功:
<code>telnet 服務器IP 8000</code>
結果發(fā)現(xiàn)telnet可以成功打開窗口:
telnet 成功窗口 - windows
此外網(wǎng)上有朋友說,對于阿里云ECS需要通過控制臺設置來實現(xiàn)公網(wǎng)端口的開放,設置的地方如下:

安全策略設置
自己剛開始也設置了訪問的安全組策略,不過發(fā)現(xiàn)這樣的設置沒有什么效果。
