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