请问下内网机器如何调用 dingdingbot

2020-10-20 08:49:09 +08:00
 li24361

内网服务器 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; } } 校验不通过

我配置的是否有问题, 有无更好的方法

2290 次点击
所在节点    程序员
15 条回复
newbeelity
2020-10-20 09:10:00 +08:00
b 上 haproxy
zwboy
2020-10-20 09:15:36 +08:00
listen 配置有问题?? 还需要配置 a 将 oapi.dingtalk.com 解析到 b 吧。
euler13
2020-10-20 10:17:24 +08:00
1.b 配置一个普通的代理, 不使用 dingtalk.com 的域名。
2.a 机器上面配置使用 b 的代理
3.a 机器上直接访问 dingtalk 的服务
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/
li24361
2020-10-20 10:56:59 +08:00
@x66 请问第二个是什么意思
li24361
2020-10-20 10:57:43 +08:00
@euler13 第二个有工具吗, 服务器权限比较严
li24361
2020-10-20 10:58:34 +08:00
知道了,使用 socks 代理,厉害
@x66
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 重定向修改
sujin190
2020-10-20 11:33:00 +08:00
这个的好处是只有服务器能配置 iptables,无视程序自身是否支持代理都能正常使用,非常方便
li24361
2020-10-20 13:25:53 +08:00
@x66 调用的是 jenkins 的控件,好像没法直接用 curl
li24361
2020-10-20 13:29:53 +08:00
@sujin190 iptables 为这个 ip 设置一个重定向到 b 不太理解这个,和 ssh 是不是一样?
li24361
2020-10-20 13:32:54 +08:00
@zwboy 有点绕,这个是将本机 7070,怎么修改端口呢
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 端口的流量都转发到真正的钉钉服务器去就行了
program9527
2020-10-20 16:21:05 +08:00
今天刚尝试了一下用 Nginx 代理一个网站,然后看到这里。整理了一下资料:

zwc365.com/2020/10/20/nginx-setting-proxy-host

也算是用通过代理访问外网的一个方案吧。当然比不上 socks5 代理或者安装一些第三方的代理软件
(没有验证手机号老是不给我发链接!!!)
program9527
2020-10-20 16:24:09 +08:00
用 Nginx 做代理服务器,有好有坏吧。不需要安装代理程序了,只要有 Nginx 就行。不过缺点也明显。

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

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

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

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

© 2021 V2EX