PHP 与 Linux 主机之间安全通信

2014-08-28 11:11:24 +08:00
 csensix
想实现的功能是这样:
客户端PHP页面,执行某个任务,比如新建站点,通过某种方式通知 后端的 nc 监听程序,然后执行相关脚本,不如创建ftp账号、新建目录等。

但是,应该怎样才能够通过 php 发消息给 nc 呢?
求教!
2860 次点击
所在节点    问与答
8 条回复
jasontse
2014-08-28 11:16:47 +08:00
csensix
2014-08-28 11:47:33 +08:00
@jasontse
$fp = fsockopen ("udp://127.0.0.1",40030,$errno,$errstr,30);
if(!$fp){
echo "$errstr ($errno) <br />";
}else{
fwrite($fp,"Hello nc");
echo "Success";
fclose($fp);
}

以上是php代码。

服务端执行脚本如下:
#!/bin/bash
killall 'nc' >/dev/null 2>&1
nc -l -u 40030 | while read Line
do
echo $Line
done


可是,为毛没有输出呢?
csensix
2014-08-28 12:47:38 +08:00
大伙给点建议吧!
Sunyanzi
2014-08-28 13:39:05 +08:00
这要能有输出才奇怪吧 ... 谁教的你 nc 是这么用的 ...

虽然我很不解为什么要用 UDP 协议 ... 但如果你执意要用的话 ...

用 nc -ulp 40030 来启动 nc ... php 脚本那边没有任何问题 ...
tabris17
2014-08-28 14:00:50 +08:00
你的用法很奇怪
csensix
2014-08-28 14:16:14 +08:00
@Sunyanzi nc -ulp 40030无法启动
109109
2014-08-28 14:56:07 +08:00
@csensix


i@i7:/tmp$ cat test.php
<?php
$fp = fsockopen ("udp://127.0.0.1",40030,$errno,$errstr,30);
if(!$fp){
echo "$errstr ($errno) <br />";
}else{
fwrite($fp,"Hello nc");
echo "Success\n";
fclose($fp);
}
?>


i@i7:/tmp$ php test.php
Success


root@i7:~# nc -vulp 40030
listening on [any] 40030 ...
connect to [127.0.0.1] from localhost [127.0.0.1] 39976
Hello nc^C


#检查是否防火墙没有放行
046569
2014-08-28 15:03:44 +08:00
LZ这不指的就是云伴侣么...
https://ymate.me
但你的办法并不安全,分分钟失控的节奏.
要全程加密啊骚年

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/130371

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX