如何让不联网正式机通过联网的测试机向外网指定域名发请求?

2025 年 1 月 13 日
 NASK

正式机不联网,测试机联网,正式机可以和测试机通讯,spring boot 项目需要使用某个 SDK 发消息到外网,SDK 使用的域名是写死的( https://..com ,SDK 发送请求使用的依赖是 apache 的 httpclient 。万能的 V 友,应该如何才能优雅的把请求发出去?

1643 次点击
所在节点    问与答
13 条回复
aminobody
2025 年 1 月 13 日
SOCKS 代理
NASK
2025 年 1 月 13 日
@aminobody #1 可以详细说一下吗,目前那个 SDK 的 httpclient 对象是 new 出来的,不被 spring 管理,除非使用 AspectJ 的 aop ,不然无法修改 sdk 发请求时的行为()。
NASK
2025 年 1 月 13 日
liangxiangdong
2025 年 1 月 13 日
我能想到的两个方案是
liangxiangdong
2025 年 1 月 13 日
我能想到的两个方案是
1.配置 hosts,然后另外一台机器 nginx 代理出去。
2.配置有网那台机器为网关,iptables 配置一下转发。
yinmin
2025 年 1 月 13 日
最优雅的方式:在测试机的 443 端口架设 SNI Proxy ,然后正式机的 hosts 文件将域名指向测试机 ip 地址
aminobody
2025 年 1 月 13 日
@NASK #2 proxychains4 , 不需要修改代码.
dcsuibian
2025 年 1 月 13 日
正式机加条路由,测试机开启转发不就好了?
NASK
2025 年 1 月 13 日
@yinmin #6 可以通过一下思路吗,我尝试了在联网的测试机使用 https://gost.run/tutorials/protocols/sni/,正式机在 hosts 把域名对应的 ip 设置成测试机,但是在正式机使用 curl 无法访问我测试的域名
NASK
2025 年 1 月 13 日
@yinmin #6 解决了,感谢
yinmin
2025 年 1 月 13 日
@NASK #10 建议加 sni 白名单,只允许特定的域名通过 sni proxy 提升安全性(主要是避免给被扫描出来,有些单位是要吃罚单的)
jeesk
2025 年 1 月 13 日
1. 如果固定域名不变,可以采用 Tun proxy 和自定义 dns 解析。

2. 如果用 java 直接使用 proxyselecor 接管请求就行了。
LOVOQ
2025 年 1 月 14 日
iptables 配置一下出入站白名单应该就行。其他流量 deny 掉。

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

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

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

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

© 2021 V2EX