本地主机上的 Netcat“连接被拒绝”

本地主机上的 Netcat“连接被拒绝”

我试图从netcatphp 文件启动的连接中获取一个值,但是它终止于:

localhost [127.0.0.1] 2000 (?) : Connection refused

我不知道为什么,但如果我以 Apache 用户 (www-data) 的身份进行 ssh,它就会运行良好。这是我所做的:

  1. 启动一个无限循环,稍微延迟一下日期:

    $ (while true; do nc -l -p 2000 -c "sleep 5; date"; done)&
    
  2. 检查是否正常工作:

    $ su www-data
    $ nc localhost 2000
    Fri Oct 16 21:33:20 COT 2009
    
  3. 创建/var/www/test.php 如下:

    <?php
    exec('nc localhost 2000>>/var/www/dates.txt 2>>/var/www/errors.txt &');
    ?>
    
  4. 在浏览器上运行它:

    http://myserver.com/test.php
    
  5. 最后查看两个 txt,日期为空(与#2 中的响应不同)并且错误出现“连接被拒绝”错误。

该服务器是一个运行带有 DRBD 和 Heartbeat 的 Ubuntu Server 9.04 的 LAMP 集群。

让我抓狂的是,这个 test.php 在我的笔记本电脑(Ubuntu Desktop 9.04 上的 LAMP)上运行良好,并且服务器似乎已经打开并正在监听端口:

$ netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:4743            0.0.0.0:*               LISTEN      2326/openhpid   
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      3364/mysqld     
tcp        0      0 0.0.0.0:2000            0.0.0.0:*               LISTEN      9510/nc         
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3470/apache2    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2320/sshd       
tcp        0      0 127.0.0.1:3551          0.0.0.0:*               LISTEN      2354/apcupsd    
tcp6       0      0 :::22                   :::*                    LISTEN      2320/sshd

这是我真正想要存档的内容:图表(我还没有足够的点来插入图片,哈哈)

  • 当服务器请求时,将卡车秤的重量值发送到服务器
  • 将原始文本(epson 转义文本格式)发送到打印机的串行端口

因此,客户端电脑不断运行两个监听netcat连接,一个用于获取重量,另一个用于打印原始文本。

答案1

此命令需要端口号和重定向之间有一个空格。

nc localhost 2000 >>/var/www/dates.txt 2>>/var/www/errors.txt

顺便说一句,肯定存在更有效、更安全的方法来实现您的目标。

答案2

好吧,毕竟这是一个权限问题...已修复使用 visudo 编辑 /etc/sudoers 以添加:

www-data ALL = NOPASSWD: /bin/nc

答案3

检查本地接口是否处于up状态。

ip link

应该会告诉你。本地接口可能已关闭,可能性不大,但有可能。

您希望看到类似这样的内容:

1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

另外,查看一下 ip route。看看那里是否发生了一些非常奇怪的事情。

相关内容