外网访问腾讯云Debian系统服务器8081端口

课题来源

我使用java写了一个简单的chat聊天室(分为服务端和客户端),同时白嫖了30天的腾讯云服务器(doge),故想试试将服务端部署在云服务器,然后通过自己电脑用客户端连接服务器上的服务端。

资料搜索

NAT

概念

腾讯云服务器有两个IP,一个是公网IP(记为42.x.x.x),另外一个是内网IP(记为192.x.x.x),他俩之间的纽带就是NAT。

NAT工作原理

NAT就是通过端口号将公网IP和内网IP做一个映射,这样外网访问公网IP的某个端口号时,NAT就会将消息转发给映射的某个内网主机的某个端口号。内网主机想访问公网也需要将自己的IP映射成为公网IP。外网可以访问公网IP但是不能访问内网IP。NAT示意表如下表。

公网内网
42.x.x.x:8081192.x.x.x:8081
云服务器配置NAT
  1. 开启转发功能
 echo 1 > /proc/sys/net/ipv4/ip_forward
  1. DNAT(destination NAT)配置,42.x.x.x为公网路由器IP,dport为公网路由器端口,192.x.x.x:8081为内网IP和端口
 iptables -t nat -A PREROUTING --dst 42.x.x.x -p tcp --dport 8081 -j DNAT --to-destination 192.x.x.x:8081
  1. SNAT(source NAT)配置
iptables -t nat -A POSTROUTING --dst 192.x.x.x -p tcp --dport 8081 -j SNAT --to-source 42.x.x.x
  1. DNAT(destination NAT)和SNAT(source NAT)关系

外网访问内网,数据包到公网路由器,会将数据包的公网IP转化为内网IP和端口,这种变更行为就是DNAT;反之,内网访问外网,数据包的内网IP也会转化为外网IP,这种转换叫SNAT

配置防火墙

通过上面的配置,还是无法通过我的电脑访问云服务器的8081端口,解决方法如下:

进入腾讯云控制台

腾讯云控制台

点击防火墙 -> 点击添加规则

添加规则

总结

通过上面的配置,可以延伸出其他工作,比如部署一个自己的网站通过IP:端口访问,尝试其他协议的应用部署到服务器等

参考资料

[1] 配置服务器NAT转发功能
[2] 为什么我的云服务器不能绑定公网 ip ?

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值