请教下服务器通讯方式

2018-09-05 09:29:18 +08:00
 Devopsre
目前场景是有一批服务器 全是内网 没有公网 ip。但是都可以上网,我要用什么开源软件或者代码实现呢。考虑过 saltstack 但是没公网 ip 很难办。如果内网穿透 机器太多成本又大了
3915 次点击
所在节点    程序员
21 条回复
mhycy
2018-09-05 09:37:24 +08:00
ZeroTier
lauix
2018-09-05 09:38:35 +08:00
saltstack 基于 ZMQ 实现的,没公网服务器用不了。
如果想控制只能弄台服务器有公网 IP 的。
建议看看一些云平台的服务,比如:百度 IOT 等等服务,自己查去。
kaneg
2018-09-05 09:49:22 +08:00
在公网找一台机器部署 VPN,然后内网机器都连 VPN,就可以在公网机器上控制虚拟局域网内任意一台内网机器了
andrewhxism
2018-09-05 09:51:45 +08:00
ZeroTier +1
flyingfz
2018-09-05 10:11:09 +08:00
你的 需求 是什么?

是想 在内网里的服务器上部署网站 /系统,然后需要暴露到公网吗?
liangweijia6000
2018-09-05 10:17:47 +08:00
实现啥?
Devopsre
2018-09-05 11:20:09 +08:00
@flyingfz 需求是公网控制机房 也不叫机房 就是一堆没有公网 ip 的机器 控制它
Devopsre
2018-09-05 11:21:27 +08:00
@kaneg 有点道理 有推荐的 vpn 吗? openvpn ?
Devopsre
2018-09-05 11:21:39 +08:00
@mhycy 谢谢 我看看
barble
2018-09-05 11:22:32 +08:00
留一台机器做跳板机,把这台机器映射出去就行了
qqqasdwx
2018-09-05 11:33:37 +08:00
少量的话 FRP,大量的话就 VPN 吧
ywgx
2018-09-05 11:37:06 +08:00
https://xabcloud.com/#/win-win 你需要这个管理,支持内网部署
Devopsre
2018-09-05 12:13:16 +08:00
@mhycy 这网站登录挂了 == 难道是我的锅?
newghost
2018-09-05 12:34:44 +08:00
这是最近碰到的第三个关于内网穿透的问题了

0. 内网穿透软件通常只需要安装一台服务器

1. 你可以开放一台服务器的 SSH,然后用这台 SSH 连接其他机器即可。

2. 如果要直连每一台机器,你可以更改穿透目标服务器的配置,指定要穿透的 IP 即可。一般默认 127.0.0.1 比如你改成 192.168.0.110

花生壳就可以实现类似功能,不过价格略贵。找免费的已经不太可能了,除非你自己搞个云服务器布署 ftp。

我们开发的网盘也有这个功能,每月会一定免费的 http 流量,已经有部分淘宝用户在用了,此外还可以外网访问知识管理、SVN、Git 等服务。

外网访问设置: http://onceair.com/page/view/public-internet-access
newghost
2018-09-05 12:35:37 +08:00
更正:ftp => frp
mhycy
2018-09-05 13:45:50 +08:00
@Devopsre 你需要梯子
uuair
2018-09-05 13:54:52 +08:00
shynome
2018-09-05 14:29:06 +08:00
如果有一台一直运行公网服务器 `host_public` 的话, 可以这么弄

把一台内网服务器的 `ssh 端口` 映射到 `host_public` 的本地端口上, 称为 `jump_host`
```sh
ssh -NT -R 127.0.0.1:233:127.0.0.1:22 public_host
# -NT 表示只做转发
# -R 233:127.0.0.1:22 表示本地的 22 端口转发到公网服务器的 127.0.0.1:233 端口
# 这个进程用进程管理工具保证运行
```

ssh config 配置如下
```config

Host host_public
HostName ip_of_host_public

Host jump_host
HostName 127.0.0.1
Port 233
ProxyCommand ssh -W %h:%p host_public

# local_* 表示以 local_ 开头定义的 host 通过 jump_host 去连接
Host local_*
ProxyCommand ssh -W %h:%p jump_host

Host local_docker_manger
HostName 192.168.100.32

```

ssh 连接内网服务器中的 `docker_manager` 主机
```sh
ssh local_docker_manger
```
ssh 使用 socks5 代理访问内网应用
```sh
ssh -NT -D 1080 local_docker_manger
```

参考链接:
- https://cherrot.com/tech/2017/01/08/ssh-tunneling-practice.html
- https://jin-yang.github.io/post/ssh-proxy.html


v2 的回复不支持 markdown, 更友好的格式看这里:
https://gist.github.com/shynome/d1a6bf5c68b4504c21e4ae83add97eda
Devopsre
2018-09-05 14:56:38 +08:00
@mhycy 确实是挂了 我这梯子很多的 502 状态 ==
mhycy
2018-09-05 14:58:29 +08:00
@Devopsre
https://my.zerotier.com/
你有没有找错地方? HKBN 梯子验证通过可登陆。。。

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

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

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

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

© 2021 V2EX