家里用的是广电的网络,接了无线路由,在192.168.1.1里面配置了端口转发,将9001转发到192.168.1.101 ,然后在php.ini中相应的配置了xdebug, phpstorm 启动监听,结果失望了,我设置的断点没有任何反应,没有得到一丁点的调试信息,在看网络链接,phpstorm确实是在9001监听着,来到服务器tail -f /root/xdebug.log  收到了来自本机的请求,但是返回的信息无法到达,于是断定是我的网络地址有问题,打电话问广电客服,果然是,我们的拨号确实分配了一个独立IP但是,这个IP是在一张局域网中的,因为广电是租用的电信的线路,怎么办?自己写转发吧,听说nodejs做这些工作挺傻瓜化的,不用劳烦 win socket或者linux socket了,当然前提是都装好了nodejs

linux:

var net = require('net');
var util=require('util');
var sock1;
var sock2;
var server = net.createServer(function(c) { //'connection' listener
sock1=c;
console.log('client connected');
console.log('RemoteAddr='+c.remoteAddress);
console.log('RemotePort='+c.remotePort);
console.log('------------------------------');
c.on('end', function() {
console.log('client disconnected');
});
c.on('data',function(data){
console.log('data received');
console.log(data);
console.log('------------------------');
sock2.write(data);
});
});
server.listen(8124, function() { //'listening' listener
console.log('server start');
}); var server9001 = net.createServer(function(c){
sock2=c;
c.on('data',function(data){
console.log('data from '+c.remoteAddress+":"+c.remotePort);
console.log(data);
console.log("--------------------------------");
sock1.write(data);
});
});
server9001.listen(9001,function(){
console.log('server9001 start');
});

win7

var net = require('net');

var HOST = '115.28.200.122';
var PORT = 8124;
var phpstorm = new net.Socket();
var proxyClient = new net.Socket();
phpstorm.connect(9001,'localhost',function(){
console.log("phpstorm connected");
console.log('--------------------------');
});
proxyClient.connect(PORT, HOST, function() {
console.log('proxyClient CONNECTED TO: ' + HOST + ':' + PORT);
console.log('--------------------------');
}); proxyClient.on('data', function(data) {
console.log("proxyClient data received");
console.log(data);
console.log("----------------------------------");
phpstorm.write(data);
}); proxyClient.on('close', function() {
console.log('Connection closed');
}); phpstorm.on('data',function(data){
console.log('phpstorm data received');
console.log(data);
console.log("------------------------------");
proxyClient.write(data);
});

phpstorm内网远程debug的更多相关文章

  1. Zerotier在windows下实现内网远程桌面

    Zerotier实现内网远程桌面 使用背景 实验室设备条件过于恶劣 向日葵在有些场景下会莫名崩溃,或者画面不动. Teamviewer免费版在之前用的时候出现过疑似商业行为被断连,github上寻解决 ...

  2. 非节点主机通过内网远程管理docker swarm集群

    这是今天使用 docker swarm 遇到的一个问题,终于在睡觉前解决了,在这篇随笔中记录一下. 在 docker swarm 集群的 manager 节点上用 docker cli 命令可以正常管 ...

  3. frp 用于内网穿透的基本配置和使用

    frp 用于内网穿透的基本配置和使用 今天是端午节,先祝端午安康! frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便 ...

  4. 傻瓜式教学--win10 + frp + rdpwrap + 阿里云服务器 --实现win10 多用户同时远程登录内网机

    概述: 使用win10 专业版 + frp + RDPwrap + 阿里云服务器 的组合实现win10 多用户同时远程登录内网机.使用frp 做内网穿透,将内网机的指定端口暴露在外网,通过ip+por ...

  5. 测试龙芯 LoongArch .NET之 使用 FastTunnel 做内网穿透远程计算机

    龙芯3A5000 已经上市,与龙芯3A5000配套的三大编译器GCC.LLVM.GoLang和三大虚拟机Java.JavaScript..NET均已完成开发,从老伙计哪里搞来一台3A5000 机器,安 ...

  6. linux下内网端口转发工具:linux版lcx [实现远程内网维护]

    这个工具以前使用的初衷是内网渗透,需要将内网ssh端口转发到外网服务器上.但这个工具同样适用于运维工程师进行远程内网维护. 当然这一切的前提是内网可以访问外网,检测方法当然就是直接ping 一个外网I ...

  7. tigerVNC远程桌面,跨内网

    tigerVNC的简单使用教程(CentOS的远程桌面连接) 1.环境和软件准备 (1) CentOS 6.5下 [root@localhost ~]$ yum install tigervnc (2 ...

  8. 通过云主机(网关机)远程登录内网mysql

    国内的一些云主机平台(UCloud,阿里云,腾讯云等)走的都是网关机+内网机(即局域网)模式,网关机代理外网访问,不能直接连接内网机器.本文介绍通过远程登录云主机,并设置本地代理的方式,通过sqlyo ...

  9. 利用阿里云搭建frp实现外网远程桌面链接内网电脑

    主要应用场景:针对学生放假回家使用外网无法远程操作学校的服务器或者电脑,这里通过阿里云的云服务器搭建一个frp服务,实现内网穿透,从而可以直接通过远程桌面或者其他工具实现对校园网内的服务器或者电脑进行 ...

随机推荐

  1. 【Todo】网络编程学习-面向工资编程

    https://zhuanlan.zhihu.com/p/20204159 这个系列真的非常好,好好领会学习一下

  2. Spring中@Async注解实现“方法”的异步调用

    原文:http://www.cnblogs.com/zhengbin/p/6104502.html 简单介绍: Spring为任务调度与异步方法执行提供了注解支持.通过在方法上设置@Async注解,可 ...

  3. python中元组(tuple)的用法

    t=(1,2,3) t=() t=(1,)#元组中只有一个值,需在值后面加上,不然会当int型识别 te.count(1) te.index(2) te[::-1]#关于切片跟列表一样的 tuple的 ...

  4. cookie 二:

    本篇随笔从cookie的入门开始,介绍了cookie的设置获取和移除,还有一些小的应用案例:一.设置cookie <script> //设置cookie:function setCooki ...

  5. 禁止Android 横屏竖屏切换

    在Android中要让一个程序的界面始终保持一个方向,不随手机方向转动而变化的办法: 只要在AndroidManifest.xml里面配置一下就可以了. 在AndroidManifest.xml的ac ...

  6. C语言样式的文件操作函数

    使用C语言样式的文件操作函数,需要包含stdio.h头文件. 1.打开文件的函数: //oflag的取值为“w”或“r”,分别表示以写或读的方式打开 FILE* fd = fopen(filename ...

  7. AngularJs的UI组件ui-Bootstrap分享(四)——Datepicker Popup

    Datepicker Popup是用来选择日期的控件,一般和文本框一起使用,功能和Jquery的插件My97DatePicker一样.在Datepicker Popup内部使用了ui-bootstra ...

  8. 新手入门之GDB调试

    写这篇文章算是对最近两天工作的一个经验总结吧. 要让可执行文件比较方便地在DGB上调试,在用gcc编译的时候要使用-g选项. 如何使用GDB启动被调试程序? "gdb path_to_deb ...

  9. asp.net生成缩略图

    /// <summary> /// 生成缩略图 /// </summary> /// <param name="orginalImagePat"> ...

  10. 开发者如何利用工具快速开发出完美APP

    文|移动互联网李建华 微信:ydhlwdyq 传统的个人开发者,要想开发出一个完美的APP要 经过以下几个过程:搭建开发环境,写代码,写统计系统,开发即将完成后,要购买服务器,然后把程序布置到服务器上 ...