com*_*oma 5 linux php port netcat apache-2.2
我试图从netcatphp 文件启动的连接中获取值,但它因以下原因而终止:
localhost [127.0.0.1] 2000 (?) : Connection refused
Run Code Online (Sandbox Code Playgroud)
我不知道为什么,但如果我以 apache 用户(www-data)的身份使用 ssh,它会很好地工作。这就是我所做的:
开始一个无限循环,稍微延迟一下提供日期:
$ (while true; do nc -l -p 2000 -c "sleep 5; date"; done)&
Run Code Online (Sandbox Code Playgroud)检查是否正常工作:
$ su www-data
$ nc localhost 2000
Fri Oct 16 21:33:20 COT 2009
Run Code Online (Sandbox Code Playgroud)创建/var/www/test.php如下:
<?php
exec('nc localhost 2000>>/var/www/dates.txt 2>>/var/www/errors.txt &');
?>
Run Code Online (Sandbox Code Playgroud)在浏览器上运行它:
http://myserver.com/test.php
Run Code Online (Sandbox Code Playgroud)最后看一下两个 txt,日期为空(与 #2 中的响应完全不同),并且错误有“连接被拒绝”错误。
该服务器是一个运行 Ubuntu Server 9.04 的 LAMP 集群,带有 DRBD 和 Heartbeat。
让我发疯的是,这个 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
Run Code Online (Sandbox Code Playgroud)
这就是我真正想要存档的:图表(我还没有足够的点来插入图像,哈哈)
因此,在客户端电脑中不断运行两个监听netcat连接,一个用于获取重量,另一个用于打印原始文本。
好吧,这毕竟是一个权限问题...修复了使用 visudo 编辑 /etc/sudoers 来添加:
www-data ALL = NOPASSWD: /bin/nc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52891 次 |
| 最近记录: |