比如: http://10.16.22.23:3001 映射到 http://localhost:3001
迫于屎山代码,代码里边很多地方写死了接口的访问路径,由于某些原因,暂时不便修改。本地开发不方便,总需要新切分支,我能不能找个工具直接代理映射下,nginx 理论上应该不行?我试了改 host 不行
1
rwecho 2023-12-08 19:04:46 +08:00
为啥修改 hosts 不行? 为啥 nginx 也不行?感觉你有其他信息
|
2
Chad0000 2023-12-08 19:15:20 +08:00 via iPhone
或者可以试试改理由?比如重定向到你的内网 IP 。
|
3
bobryjosin 2023-12-08 19:15:20 +08:00
hosts 只能作用域名,你确定目标地址是域名?如果是 ip ,你需要在上级路由器上做 dstnat
|
4
danbai 2023-12-08 19:34:53 +08:00 via Android
用 gost 做个端口转发就行监听本地 3001 转发到 10.16.22.23:3001
|
5
danbai 2023-12-08 19:37:12 +08:00 via Android
看反了,可以走代理然后重定向 10.16.22.23 的请求到本地 3001
|
6
danbai 2023-12-08 19:38:33 +08:00 via Android
|
7
ik 2023-12-08 19:54:31 +08:00 via iPhone
gost -L tcp://127.0.0.1:3001/10.16.22.23:3001
|
8
falcon05 2023-12-08 20:01:21 +08:00 via iPhone
nginx 可以啊,就是简单的反代。
|
10
rrfeng 2023-12-08 20:16:44 +08:00 via Android
哦然后还要让你的本地服务端程序监听 0.0.0.0 或者指定这个 IP 。
|
12
Corybyte 2023-12-08 23:26:32 +08:00 via Android
用 iptables 把 127.0.0.1 映射目标 ip ?
|
13
msg7086 2023-12-09 12:29:38 +08:00
像上面说的,把地址加进 localhost 网卡就行了。
同理如果你想屏蔽软件访问某个 IP ,除了用 iptable 锁以外也可以把 IP 加进 lo 达到类似的目的。 |
14
laminux29 2023-12-09 12:57:26 +08:00
nginx 、gost 、socat 这类代理与转发的方法才是正解,因为它实现了访问地址的 IP 、端口号的解耦。
楼上的路由、给网卡添加 IP 的方法,能解决问题,但仍然具有一定程度的耦合,通用性比代理转发方案要差一些。 |
15
rrfeng 2023-12-10 12:43:49 +08:00 via Android
@laminux29 正解个屁,第一步要拦截发往目标 IP 的请求,nginx 你告诉我怎么做,socat 怎么做?
|
16
laminux29 2023-12-10 13:19:09 +08:00
@rrfeng
1.假设楼主的 localhost 在内网的 IP 为 172.16.0.1 。 2.在 10.16.22.23 上面架设 nginx 代理或 socat 代理,代理源地址 10.16.22.23:3001 ,目标地址 172.16.0.1:3001 。 3.nginx 代理的配置,以及 socat 的代理命令行,直接问 GPT 就行了。 |
17
rrfeng 2023-12-10 18:12:35 +08:00 via Android
@laminux29 他要能控制 10.16.22.23 干嘛还要劫持回本机??
或者 10.16.22.23 是生产服务器,你把生产干了转发到你本地?? |