Comments (24)
可以说下是什么场景吗?我测试了下302重定向的可以的。
还是说重定向直接写的内网完整ip?
from nps.
用你的例子给你举例,
http://ehang.ehangopen.ourcauc.com/Original/eqi/6391.html
你看看你的404
都是你内网的地址,
这个我已经大概知道什么情况还没有找到解决方案.
from nps.
你打开你的项目, 随便找一个带有图片, 但是图片有不存在的页面, 只要404的都可以, 你就可以看到你的内网ip了.
from nps.
也就是请求的页面中如果带有内网其他站点的地址 就会直接返回而不解析的情况是么?
from nps.
现在我个人主要是基于api或者单站场景去写的,对于内网的website还是有一些问题,下个版本我会换一种方式重构一下。
from nps.
因为客户端在进行跳转的时候, 记录的是真是的ip地址和端口. 所以就导致了这个情况. 这样的话, 这个就真的只能自己电脑上用了. 而不能跨设备了. 我只要是刚刚开始看go语言, 完全是, 需要翻着文档看代码. 所以, 还没有找到方案处理,所以, 问你, 是不是你那也出现了这样的问题. 还有另一个问题, 你可以尝试看看, 就是如果客户端异常关闭的情况, 就是强制关闭, 再重新连接的时候, 有可能服务端卡死的情况.
from nps.
1.跨设备这个问题现在这个版本的确存在问题 因为实现方式与shadowsock等代理不同,也就导致了这个问题,之前我场景不会跨站点,然后就没发现,最近我看看能不能重构一下。
2.异常关闭这个我目前测试还没发现过,我再观察下。
from nps.
其实说白了, 就是内网的网站的问题. 只要是使用获取当前servername和port的 都会出现这样的情况, 因为client本身就是访问的内网的ip所以, 就一定会这样.
from nps.
你刚才提到的只能在自己电脑上用是什么情况?这个我貌似没懂啊
跨设备这个确实没办法,因为如果代理的是10.1.50.203,然而html里面写了这种
<img src="10.1.50.122/xxx">
确实没办法 如果是
<img src="/xxx">
这种是可以的
from nps.
因为会有内网的问题, 所以, 就只能自己电脑上做测试了, 而不能使用其他的终端了.
from nps.
我说的就是这个道理, 如果连接是绝对路径就不行, 相对路径就可以. 如果在页面上使用了类似php代码
'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
这种绝对路径就不行. OK, 我再找点Go的书瞅瞅.
from nps.
你说的这个问题啊,那我应该有办法解决,这两天我会做一下这方面的处理然后更新一下,你可以关注一下。谢谢反馈
from nps.
已经解决,你可以测一测。
例如,访问:server1.ourcauc.com,该页面里面有一个超链接为10.1.50.196:4000,将根据配置文件自动该将url替换为server2.ourcauc.com,以达到跨站也可访问的效果,但需要提前在配置文件中配置这些站点。
from nps.
你这样处理之后, 还是会有一个问题, 因为我这都是直接用的域名80端口, 这里你的port是用的内网端口, 还是会导致这个问题, 不过我已经看到你修改的代码。 我尝试修改一下。 看看能不能搞定。
from nps.
我看到了你的处理方案, 你的处理方案是, 把拿到的response数据进行了replace操作, 但是这样的话, 还是没有办法解决http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'] 服务端的获取数据。 不过这样也算是解决了这个问题。 但是就有可能会导致另外的bug. 举例说, 真的有内容就是正好配置成你对应的ip:port 那这也会被相应的替换成对应的外网地址。
from nps.
http_host获取这个问题。。我能想到的最好的解决方案那就是,你在你运行客户端的机器上添加一条host 外网的域名 解析为内网的ip,然后在配置文件中,将对应内网机器ip改为外网域名,因为dns会优先解析本地host,这样子应该就可以了
from nps.
其实这个问题, 最主要是因为 server.go:176: &{302 Found 302 HTTP/1.1 1 1 做了302. 所以 才会导致这个问题, 我正在调整这个host。 调整好了, 我再看看能不能用
from nps.
所有的302 都会在header中写入一个Location的地址, 这个地址只要是对的, 就没有问题了。
from nps.
不太明白你的场景了……
from nps.
我已经找到解决方案了, 但是基本上需要重新构造你的server.go的代码了, 需要在server端, 保存client绑定的url地址, 这样, 就可以做到处理内部ip的问题。 和client端一一对应。
<?php header('content-type:text/html;charset=uft-8); //重定向页面 header('location:index.php'); ?>
我看你的项目是php的。 我说的场景类似这个功能。 你可以尝试一下,你现在的代码, 你就明白了,我这很多时候, 需要自动的跳转一些页面, 根据用户的当前状态, 进行自动的跳转页面。 所以会有时候, 用到302. 也就是重定向页面。 所以这个时候, 在重定向的时候, server.go里面173行代码的。 字节转换成resp的时候, 会多出来Location. 这个location就是页面要跳转的地址。 这个还是带有端口信息, 所以, 会出现url:(内网端口的情况)。
不过, 还是谢谢了, 你的更新过的代码给我了思路。
from nps.
问题解决了, 你的代码func replaceHost(resp []byte) []byte
这个代码有点问题。
这个应该是个bug.我是调试出来的, 对Go还不太熟悉。
数字转换成字符串, 应该是用 "strconv"
strconv.Itoa(v.Port)
你用的是
string(v.Port)
导致第一个replace就没有起作用, 第二个replace才起作用, 所以导致端口号, 没有去掉。
修改成strconv.Itoa(v.Port)
302的问题解决。
from nps.
哦哦。。这个我的锅,不小心把语言弄混了,尬,也没测试带端口的情况,不过这个确实有可能导致不应该替换的内容被替换,后面的代码我加了替换与否的开关,看个人需求吧。
from nps.
语法的问题。 在所难免。 不过问题解决了, 多了一个使用方式。 哈哈哈
from nps.
我也遇到了这样的问题,不知道这个问题有没有解决呢,有什么方案呢?
from nps.
Related Issues (20)
- 云服务器上安装有nginx,如何使用nginx整合nps实现内网穿透 HOT 2
- 有木马,千万别用 HOT 9
- SMB 445端口 TCP隧道不生效 HOT 1
- 如何删除注册的用户,或者修改注册的用户的密码。 HOT 6
- 报异常,然后挂掉: panic: runtime error: slice bounds out of range [69:66]
- 通过API或者web新增客户端可以自定义id HOT 1
- 服务端window版本报木马,不敢用啊,近期有用的哥们吗? HOT 2
- 域名解析到内网IP地址
- 如果使用tcp隧道,应该怎么获取客户端IP地址呢 HOT 10
- 【新年快乐】请教下域名+Nginx的使用问题 HOT 2
- 请问如何在小米路由中配置自启动? HOT 1
- 域名解析可以支持TCP/UDP吗
- 这个项目为啥没人维护了 HOT 2
- 在服务器同时安装了Nginx和NPS,域名解析不起作用
- nps针对web启用http_cache后,Linux和Windows各自缓存路径在哪里
- Requesting NPS server through iOS mobile end, the request body is lost, and the mobile end reports 408 HOT 2
- 新增客户端状态显示关闭
- 腾讯云报毒
- 网络错误无法重新连接:connect: network is unreachabl
- 希望大佬添加支持打洞技术
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nps.