内网服务器 a, 有 jenkins 等. 无外网,安装了 dd 插件,应该是发送的时候写死了地址,只让填 token
内网服务器 b, 可访问外网
现在 a 的通知 想通过 b 转发请求
a 上 ssh -L 7070:oapi.dingtalk.com:80 xxx@b 的 ip
设置 nginx 反代
server { listen oapi.dingtalk.com:80; server_name oapi.dingtalk.com; location / { proxy_pass http://127.0.0.1:7070; } } 校验不通过
我配置的是否有问题, 有无更好的方法
1
newbeelity 2020-10-20 09:10:00 +08:00
b 上 haproxy
|
2
zwboy 2020-10-20 09:15:36 +08:00
listen 配置有问题?? 还需要配置 a 将 oapi.dingtalk.com 解析到 b 吧。
|
3
euler13 2020-10-20 10:17:24 +08:00
|
4
x66 2020-10-20 10:25:59 +08:00
ssh -f -N -D 127.0.0.1:1080 username@b_host
curl -x socks5h://127.0.0.1:1080 http://oapi.dingtalk.com:80/ |
8
sujin190 2020-10-20 11:31:55 +08:00
可以在 a 上用 hosts 为 dingding 的域名设置一个 ip,然后用 iptables 为这个 ip 设置一个重定向到 b,接着在 b 上配置一个端口转发到真正的 dingding 服务器就好了
用重定向的用意是为了把 dingding 请求的 80 或 443 端口流量转发到一个非 80 或 443 端口的 b 上,这样 b 上就能直接通过端口设置端口转发了,a 通过 hosts 设置的这个 ip 存不存在都不重要,反正都要被 iptables 重定向修改 |
9
sujin190 2020-10-20 11:33:00 +08:00
这个的好处是只有服务器能配置 iptables,无视程序自身是否支持代理都能正常使用,非常方便
|
13
sujin190 2020-10-20 14:09:21 +08:00
@li24361 #11 嗯,不一样
假设你把 dingding 的域名在 hosts 里绑定到了 192.168.10.2 而 b 机器的 ip 是 10.10.10.3 iptables -t nat -A OUTPUT -d 192.168.10.2/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.10.10.3:8008 在 a 上设置这条 ip,那么就可以把访问 dingding 80 端口的流量都转发到 b 机器的 8008 端口上,然后再在 b 机器上设置把 8088 端口的流量都转发到真正的钉钉服务器去就行了 |
14
program9527 2020-10-20 16:21:05 +08:00
今天刚尝试了一下用 Nginx 代理一个网站,然后看到这里。整理了一下资料:
zwc365.com/2020/10/20/nginx-setting-proxy-host 也算是用通过代理访问外网的一个方案吧。当然比不上 socks5 代理或者安装一些第三方的代理软件 (没有验证手机号老是不给我发链接!!!) |
15
program9527 2020-10-20 16:24:09 +08:00
用 Nginx 做代理服务器,有好有坏吧。不需要安装代理程序了,只要有 Nginx 就行。不过缺点也明显。
|