出于某种原因,我的CentOS VPS拒绝除HTTP,SSH和Telnet之外的所有连接。 每当我尝试连接到一个端口,如25(SMTP),甚至是一个随机的端口,如225我得到一个连接拒绝错误:S netstat-AP显示服务器正在侦听和iptablesclosures。
不过,我可以通过telnet与服务器上的相同端口连接…
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination # netstat -an | fgrep LISTEN tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:225 0.0.0.0:* LISTEN tcp 0 0 :::22 :::* LISTEN tcp 0 0 :::80 :::* LISTEN unix 2 [ ACC ] STREAM LISTENING 169786017 /tmp/.font-unix/fs7100 unix 2 [ ACC ] STREAM LISTENING 169786045 /var/run/saslauthd/mux
这是我从我的PHP脚本得到的错误信息。 我的PHP脚本正常工作与我遇到的每个其他SMTP服务器警告:fsockopen()[function.fsockopen]:无法连接到:25(连接被拒绝)
看起来你的VPS上游有阻塞访问的地方,除了logging的端口。 您应该联系您的VPS提供商并向他们询问。
好的,说清楚一点 – 如果你正在运行CentOS,那么很有可能你的发行版本是sendmail作为默认版本。 在这种情况下,你不会外部连接,因为sendmail默认只会监听localhost。 要使其在主IP上侦听,您需要从以下位置禁用/etc/sendmail.mc中的行:
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
对此:
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
然后使用以下命令重buildsendmail.cf:
/etc/mail/make /etc/init.d/sendmail restart
(如果是后缀,可能是另一回事了,IIRC,postfix只会在localhost上默认监听,所以你也需要configuration它来监听主IP)。
不过,因为你只是试图testing外部连接,你可能只需要安装nc然后运行它来听一个特定的。 这是我的例子:
[root@kvm0006 mail]# nc -l 50
在这里,我正在监听端口50(因此,-l)。 现在当我从该端口的服务器外部连接时,我会得到这个:
yvaine:Downloads rilindo$ telnet 192.168.15.36 50 Trying 192.168.15.36... Connected to kvm0006.monzell.com. Escape character is '^]'. Hello
这将在服务器端返回以下内容:
[root@kvm0006 mail]# nc -l 50 Hello
要安装nc:
yum -y install nc