需求:购买多台云服务器,不同服务器挂不同的服务。
但是每台服务器配一个公网 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 1
端口转发. 其实也不用装个 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 2022-11-29 15:17:18 +08:00
以下答复限于阿里云场景。
场景一:入方向,多台服务器,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
binfengxy 2022-11-29 18:53:22 +08:00 via iPhone
云上的方案当然要云原生比较好,选 15 楼
|
30
1311317 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 1
@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 2022-11-30 09:15:11 +08:00
内网本来就通的
|
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 的云主机也可以同时做其他用途
|