需求:购买多台云服务器,不同服务器挂不同的服务。
但是每台服务器配一个公网 ip 太贵了,有没有办法只买一个公网 ip 就能解决,然后多台服务器组内网通讯。
ip 已经都买好了,只是来请教一下 V 友们。
![]() | 1 love2328 2022-11-29 14:56:19 +08:00 nginx ?? |
2 lscho 2022-11-29 14:58:26 +08:00 via iPhone 可以 |
![]() | 3 lichao 2022-11-29 14:59:07 +08:00 nginx 转发一下就可以了 |
![]() | 4 skywalkerw 2022-11-29 14:59:25 +08:00 nginx |
![]() | 5 opengps 2022-11-29 14:59:29 +08:00 可以,eip ,结合 vpc 网络,你可以搞一个类似于家里似的,一个路由下多个设备联网 |
![]() | 6 motherfaka 2022-11-29 14:59:38 +08:00 阿里云有个公网 nat 网关,应该符合你的要求 |
![]() | 7 PeacePeach 2022-11-29 14:59:56 +08:00 via iPhone nginx upstream |
8 Runm 2022-11-29 15:01:12 +08:00 当然可以了,搞个内网穿透就好了,推荐 nps ,服务端管理多个客户端,即改即生效。 |
![]() | 9 kindjeff 2022-11-29 15:04:48 +08:00 在 VPC 里配 SNAT |
![]() | 10 BeforeTooLate 2022-11-29 15:05:21 +08:00 负载均衡? |
![]() | 11 Mohanson 2022-11-29 15:05:22 +08:00 ![]() 端口转发. 其实也不用装个 nginx 这么麻烦, 自己写代码正好 21 行(Golang), 把公网 ip 的 20000 端口转发到一台内网机器指定端口: ``` ln, _ := net.Listen("tcp", "0.0.0.0:20000") for { app, err := ln.Accept() if err != nil { continue } go func() { defer app.Close() dst, err := net.Dial("tcp", "your dest server ip:port") if err != nil { return } defer dst.Close() go func() { io.Copy(app, dst) app.Close() }() io.Copy(dst, app) dst.Close() }() } ``` |
![]() | 12 Twnysta 2022-11-29 15:05:44 +08:00 不是负载均衡服务器吗? |
![]() | 13 guowq 2022-11-29 15:12:05 +08:00 via Android 内网配好,在有外网的服务器上操作,至于用什么,见 www.v2ex.com/t/853232 |
![]() | 14 pysex 2022-11-29 15:13:00 +08:00 阿里云的 CLB 负载均衡 |
![]() | 15 mytsing520 PRO 以下答复限于阿里云场景。 场景一:入方向,多台服务器,Web 业务,端口复用。 解决方案:可使用阿里云 ALB ,七层负载均衡,基于域名转发。或阿里云 CLB 、NLB ,转发到七层反向代理( ECS 实例或实例集群)后,根据域名转发到实际业务。 场景二:出方向,多台服务器统一使用一个出口。 解决方案:使用 NAT 网关产品。 |
16 edis0n0 2022-11-29 16:04:34 +08:00 wireguard |
![]() | 17 daimaosix 2022-11-29 16:11:27 +08:00 via Android 人家嫌公网 ip 太贵,楼上推荐负载均衡器,NAT 网关这玩意比公网 IP 还贵,图啥 |
![]() | 18 finalstart 2022-11-29 16:12:41 +08:00 lvs haproxy nginx 转发基本都可以 |
19 preach 2022-11-29 16:20:16 +08:00 一台服务器开个转发到内网就行哇,阿里云同区域的内网至少千兆 |
20 bthulu 2022-11-29 16:20:53 +08:00 楼上这些转发, 都是基于楼主是用作 http 服务器来的吧, 但是楼主不一定是拿来干这个的啊, 也许就是用作纯 udp 游戏服务器呢, 这不就得客户端跟网关协商好如何转发吗, 这种也能靠 nginx 来弄? |
21 wu00 2022-11-29 16:22:47 +08:00 NAT 网关比公网 IP(带宽)便宜多了,NAT 绑弹性公网 IP ,出网入网配置灵活简单,各服务多多少少有访问公网的需求把 |
22 ThirdFlame 2022-11-29 16:25:35 +08:00 15 楼是正确答案。 如果不选用这种产品,那么可以在一台主机上配置公网 IP ,入方向上 nginx 反向代理、出方向上 SNAT 即可。 |
![]() | 23 unt OP 谢谢各位的回复,我去看下。。。 然后我的需求细节没有讲清楚: 我是第一台服务器做 web 应用及第三方 web 应用 第二台服务器跑 mysql,redis,kafka 第三台服务器跑 mongo |
![]() | 24 liufish 2022-11-29 17:31:48 +08:00 3 台服务器是否在同一个区域,是否有能互通的私网 IP 。 例如阿里云,如果这些服务器都在同一个区域,私网 IP 能通,用 ng 就好了。 NAT 太贵了,不太划算。 |
![]() | 25 AnroZ 2022-11-29 17:41:59 +08:00 三台组成一个局域网,公网 IP 绑一台然后 nginx 反向代理到其他两台或者 iptables 端口转发,公网临时访问可以用 ssh -L |
![]() | 26 tanglu 2022-11-29 17:44:41 +08:00 想问问楼主 公网 IP 在哪购买的呀? |
![]() | 27 cxh116 2022-11-29 18:21:00 +08:00 @bthulu nginx 早就支持 4 层代理了 , tcp, udp, sni proxy 都没问题 https://nginx.org/en/docs/stream/ngx_stream_core_module.html |
![]() | 28 snoopygao 2022-11-29 18:33:17 +08:00 我看了楼上,你选择以下两个方案靠谱点 一、在带公网的服务器上装 haproxy ,转发 tcp 协议就可以; 二、在带公网的服务器上启用 firewalld ,使用 public 区域上网(开启 masqurade ),internal 区域内部通讯,如果其它服务器要上网,在 vpc 内把默认路由指向第一台服务器,主服务器网卡上关闭 检查源目 MAC 地址; 强烈建议第二种。 天翼云解决方案专家+华为云解决方案专家 |
![]() | 29 v166ex 2022-11-29 18:53:22 +08:00 via iPhone 云上的方案当然要云原生比较好,选 15 楼 |
30 Auston 2022-11-29 19:35:30 +08:00 via Android keepalived 可行? |
![]() | 31 honmaple 2022-11-29 20:26:02 +08:00 LVS |
32 totopper312 2022-11-29 20:41:23 +08:00 最开始腾讯云是支持把一台服务器当 nat 网关用,后来下架了,有方法,比较折腾,入口方向和出口方向都要考虑。 |
![]() | 33 imNull 2022-11-29 20:45:52 +08:00 @totopper312 大佬,正好要用到,什么方法,有链接么?学习下 |
![]() | 34 moonheart 2022-11-29 21:40:00 +08:00 iptables 配置下 snat dnat 就好了 |
35 paranoiagu 2022-11-29 21:43:23 +08:00 via Android |
![]() | 36 eason1874 2022-11-29 21:53:27 +08:00 同区域的服务器本来就可以内网通讯的,只要在一个 VPC 或者 VPC 互通就行,不管有没有公网 IP 共用一个公网出口的话,就是把公网 IP 绑定到 A ,然后其他机器拿 A 当网关,A 相当于软路由的角色,或者用代理的方法,就是 socks5 、nginx 之类的 |
37 totopper312 2022-11-29 22:06:02 +08:00 ![]() @imNull https://cloud.tencent.com/document/product/213/38839 2019 年 12 月 06 日后,腾讯云不支持在云服务器购买页勾选配置公网网关。如果您有需要,请按照本文所示方法自行配置。 |
38 fengbjhqs 2022-11-29 22:46:42 +08:00 via Android 菜鸟再问,如果 vps 不在一个运营商可以吗 |
40 seakingii 2022-11-29 23:31:16 +08:00 在有公网 IP 的服务器上做端口转发 |
![]() | 41 cubecube 2022-11-30 00:27:48 +08:00 有标准化的服务,NAT 网关(收费) 当然你可以自己弄,iptables 转呗 |
43 yikyo 2022-11-30 07:16:00 +08:00 via iPhone 楼主需求描述有误 看需求不需要公用 IP 吧,本身这些应用就不该暴露到公网 看看你的云服务商,有没有提供内网 ip ,内部用内网 ip ,web 服务用公网 ip |
![]() | 44 lower 2022-11-30 09:10:08 +08:00 你的第二、第三服务器是不是不需要对外公网暴露服务啊? 登录第一台服务直接用内网 ip 去远程连接和管理就行? |
![]() | 45 Tink PRO 内网本来就通的 |
![]() | 46 huangzxx 2022-11-30 15:52:47 +08:00 VPC NAT 网关,了解下 |
![]() | 47 pxllong 2022-11-30 16:41:12 +08:00 nat 网关 |
![]() | 48 piku 2022-11-30 22:58:12 +08:00 via Android 江苏电信:共享公网 IP ?这事我熟啊 |
![]() | 49 piku 2022-11-30 22:59:08 +08:00 via Android 觉得你的需求更适合一个服务器+若干容器的方案 |
50 zeze0556 2022-12-04 20:53:17 +08:00 via Android 带公网 IP 的做网关,其他的流量走网关。腾讯云和阿里云都支持这样。公网 ip 的云主机也可以同时做其他用途 |