Dnat教程&阿里云服务器如何配置端口映射?

本文涉及的产品
云服务器 ECS,每月免费额度280元 3个月
云服务器ECS,u1 2核4GB 1个月
公网NAT网关,每月750个小时 15CU
简介:

通过iptables配置Dnat是一个比较常见的操作,阿里云的服务在classic网络下无法支持snat,但是dnat实际是没问题的,这里罗列一下操作过程:
实验环境两台阿里云ECS服务器 ,一台公网,一台内网。内网安装nginx,希望访问公网服务器的时候,能够访问到内网的nginx站点。

内网服务器操作过程如下:
首先安装nginx和启动

1 [root@内网 ~]# yum install nginx -y >>/dev/null
2 [root@内网 ~]# /etc/init.d/nginx start
3 Starting nginx: [ OK ]
4 [root@内网 ~]# lsof -i:80
5 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
6 nginx 1742 root 6u IPv4 5570 0t0 TCP *:http (LISTEN)

测试nginx安装正常,可以访问。

1 [root@内网 ~]# curl -I localhost
2 HTTP/1.1 200 OK
3 Server: nginx/0.8.55
4 Date: Wed, 14 Jan 2015 07:29:05 GMT
5 Content-Type: text/html
6 Content-Length: 3698
7 Last-Modified: Tue, 11 Nov 2014 16:30:06 GMT
8 Connection: keep-alive
9 Accept-Ranges: bytes

公网服务器操作如下:
首先修改内核参数,开启ip转发

1 [root@公网 ~]# sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf
2 应用生效
3 [root@公网 ~]# sysctl -p
4 net.ipv4.ip_forward = 1

配置iptables,将访问公网服务器80端口的请求,转发到内网服务器的80

1 [root@公网 ~]# iptables -t nat -I PREROUTING -d 115.29.96.246 -p tcp --dport 80 -j DNAT --to 10.144.26.11:80

这时候我们访问公网服务器IP测试一下,同时抓包看转发后的数据包情况:

1 15:35:46.602240 IP 42.120.74.108.8864 > 115.29.96.246.80: S 765781831:765781831(0) win 8192
2 15:35:46.602272 IP 42.120.74.108.8864 > 10.144.26.11.80: S 765781831:765781831(0) win 8192

这样原地址是访客的公网IP,目标是内网服务器的内网地址,这样也没办法双向通讯啊,所以,需要让这个数据包的原地址,也变成内网地址,这样才能和内网服务器建立通讯。
修改原地址就是SNAT
我们继续在公网服务器配置:

1 [root@公网 ~]# iptables -t nat -I POSTROUTING -d 10.144.26.11 -p tcp --dport 80 -j SNAT --to 10.163.209.59

抓包分析:

1 15:38:14.846955 IP 42.120.74.108.10839 > 115.29.96.246.80: P 433:858(425) ack 159 win 16385
2 15:38:14.846985 IP 10.163.209.59.10839 > 10.144.26.11.80: P 433:858(425) ack 159 win 16385
3 15:38:14.847759 IP 10.144.26.11.80 > 10.163.209.59.10839: P 159:317(158) ack 858 win 317
4 15:38:14.847772 IP 115.29.96.246.80 > 42.120.74.108.10839: P 159:317(158) ack 858 win 317

访客本地公网->公网服务器公网IP
修改目标地址
公网服务器内网IP->内网服务器IP
修改原地址
内网服务器IP->公网服务器内网IP
公网服务器公网IP->访客本地公网

完成通讯,试试看。

目录
相关文章
|
11天前
|
消息中间件 安全 Unix
SSH配置多台服务器之间的免密登陆以及登陆别名
SSH配置多台服务器之间的免密登陆以及登陆别名
21 1
|
17天前
|
Linux
linux下搭建tftp服务器教程
在Linux中搭建TFTP服务器,需安装`tftp-server`(如`tftpd-hpa`)。步骤包括:更新软件包列表,安装`tftpd-hpa`,启动并设置开机自启,配置服务器(编辑`/etc/default/tftpd-hpa`),添加选项,然后重启服务。完成后,可用`tftp`命令进行文件传输。例如,从IP`192.168.1.100`下载`file.txt`: ``` tftp 192.168.1.100 <<EOF binary put file.txt quit EOF ```
28 4
|
2天前
|
XML Java 数据格式
Servlet 教程 之 Servlet 服务器 HTTP 响应 3
`Servlet`教程示例展示了如何创建一个HTTP响应,使用`@WebServlet("/Refresh")`的`Refresh`类继承`HttpServlet`。在`doGet`方法中,设置了`Refresh`头以每5秒自动刷新,并用`setContentType("text/html;charset=UTF-8")`设定内容类型。还使用`Calendar`和`SimpleDateFormat`获取并格式化当前时间显示。相应的`web.xml`配置指定了Servlet路径。当访问此Servlet时,页面将每5秒更新一次显示的系统时间。
14 4
|
3天前
|
安全 Unix Linux
Windows如何远程连接服务器?服务器远程连接图文教程
服务器操作系统可以实现对计算机硬件与软件的直接控制和管理协调,任何计算机的运行离不开操作系统,服务器也一样,服务器操作系统主要分为四大流派:Windows Server、Netware、Unix和Linux。今天驰网飞飞将和你分享Windows server远程连接图文教程,希望可以帮助到你
16 4
Windows如何远程连接服务器?服务器远程连接图文教程
|
1天前
|
监控 索引
配置本地端口镜像示例(1:N,单个配置观察端口)
1:N镜像是指将单个镜像端口的报文复制到N个不同的观察端口,主要适用于将报文复制到不同监控设备进行分析处理的场合。 1:N镜像需要配置多个观察端口,连接不同的监控设备。观察端口有单个配置和批量配置两种方式,而且这两种方式可同时配置。观察端口组一般在1:N镜像时使用,既可以简化配置,还可以节约观察端口索引(一个观察端口组无论包含多少个端口,仅占用一个观察端口索引)。
|
8天前
|
存储 弹性计算 安全
阿里云服务器2核2G、2核4G配置最新租用收费标准及活动价格参考
2核2G、2核4G配置是很多个人和企业建站以及部署中小型的web应用等场景时首选的云服务器配置,这些配置的租用价格也是用户非常关心的问题,本文为大家整理汇总了2024年阿里云服务器2核2G、2核4G配置不同实例规格及地域之间的收费标准,同时整理了这些配置最新活动价格,以供大家参考和选择。
阿里云服务器2核2G、2核4G配置最新租用收费标准及活动价格参考
|
11天前
|
域名解析 网络协议 应用服务中间件
阿里云服务器配置免费https服务
阿里云服务器配置免费https服务
|
14天前
|
安全 关系型数据库 MySQL
国产麒麟服务器等保二级 配置规范(一)
国产麒麟服务器等保二级 配置规范(一)
32 0
|
14天前
|
数据采集
robots.txt配置 减小服务器压力
robots.txt配置 减小服务器压力
13 0
|
21天前
|
弹性计算 关系型数据库 MySQL
阿里云数据库服务器价格表,数据库创建、连接和使用教程
阿里云数据库使用流程包括购买和管理。选择所需数据库类型如MySQL,完成实名认证后购买,配置CPU、内存和存储。确保数据库地域与ECS相同以允许内网连接。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码连接。同一VPC内的ECS需添加至白名单以进行内网通信。参考官方文档进行详细操作。
123 3

热门文章

最新文章