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

通过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->访客本地公网

完成通讯,试试看。

时间: 2024-11-04 12:01:24

Dnat教程&阿里云服务器如何配置端口映射?的相关文章

关于阿里云服务器升级配置的问题解答

关于阿里云服务器升级配置的问题解答: 1.服务器或者配置能否升级? 我们的服务器支持自定义升级,可以根据用户需求,针对cpu.内存.带宽进行升级.其中带宽支持按天来进行升级. 2.配置升级费用怎么计算? 升级的费用是以补差价的形式,用户可以在[用户中心]--[管理控制台]进行操作. 3.是否无缝升级或者升级是否会有影响? 升级是无缝升级的,不会影响数据. 4.升级需要多少时间? 目前升级需要停机操作大概15分钟左右.(ps:升级带宽不需要停机,5分钟左右完成升级) 5.按量付费云服务器不支持升级

阿里云服务器ECS配置LNMP

刚刚买的阿里云服务器ECS镜像CentOS 6.5 64位. 准备配置个laravel跑,另外之前一直使用mysql,因为php7 & mariadb跟php5 & mysql开发的变化,没有使用最新版本. 参考此文使用yum install安装的lnmp版本为:nginx-1.10.2.php5.3.3.mysql5.1.装完后配置phpMyAdmin-4.6.3及最新版本都报不同错误,于是对php.mysql版本升级. 如果你yum或者rpm升级mysql中,可能跟我一样,遇到各种li

阿里云服务器升级配置常见问题?

注意,请先到阿里云官网领取幸运券,除了价格上有很多优惠外,还可以参与抽奖.详见:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=2a7uv47d&utm_source=2a7uv47d 1.服务器或者配置能否升级? 我们的服务器支持自定义升级,可以根据用户需求,针对cpu.内存.带宽进行升级.其中带宽支持按天来进行升级. 2.配置升级费用怎么计算? 升级的费用是以补差价的形式,用户可以在[用户中

阿里云服务器centOS配置过程实录

Step1. 系统挂载数据盘 df -h,看不到数据盘. fdisk -l ,可以看到数据盘 执行"fdisk -S 56 /dev/xvdb"命令,对数据盘进行分区: 根据提示,依次输入"n","p""1",两次回车,"wq",分区就开始了,很快就会完成.   使用"fdisk -l"命令可以看到,新的分区xvdb1已经建立完成了.   使用"mkfs.ext3 /dev/x

阿里云服务器部署应用环境(nginx服务器)

阿里云服务器的配置 1.打开阿里云官网,登录上自己的账号,点击控制台 2.点击左侧的云服务器ECS 3.点击实例 4.选择您所购买的服务器的区域,选择你要配置的服务器,点击远程连接. 5.输入管理终端密码.(如果是第一次登录,系统会告诉你初始密码) 6.登录云服务器        1.输入登录名(一般为root)        2.输入密码(购买服务器时,自己设置的)        3.按enter键 登录 7.开始配置 1. 安装及启动nginx 输入yum install nginx命令进行

阿里云服务器的使用心得

阿里云服务器非常稳定,已经使用了两年了.两年以来,自己的网站一直都很稳定,访问速度也很快.而且阿里云服务器的价格也很实惠. 阿里云服务器分为:windows系统和linux系统.我们在购买的时候,如下图,需要进行选择: 除了图中描红的部分,其他都为linux系统,描红的部分为windows系统.如果我们不善于使用linux系统,则可以使用windows系统搭建网站.在百度上搜索"windows系统服务器搭建网站",会搜到很多教程.这里就不再详细赘述. 目前,阿里云服务器有优惠券的活动,

阿里云服务器购买流程,阿里云ECS服务器申请步骤

阿里云服务器非常好用,我自己的网站,放在阿里云服务器上很多年了,从未出现过问题.阿里云服务器购买流程如下: 1. 如果没有阿里云账号,需要先注册有一个账号.(阿里云网站的网址是:www.aliyun.com)如果有了阿里云账号,那么请先登录账号. 2. 购买之前,可先领取阿里云的幸运券.有幸运券,比没有要好很多.可以享受到额外的优惠政策.阿里云幸运券领取地址如下: https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?

阿里云服务器ECS(Ubuntu)搭建nginx服务器 详细步骤教程

假设阿里云服务器的ip是192.168.1.10(读者需要换成自己的ip地址),并且没有选择任何安装包.现在ECS是完全空的,除了必须的Linux系统外,其他什么都没有.还有一点,本文选择的是Ubuntu Linux 14.04 64位版本.Linux比较节省内存,因为并没有UI部分,纯控制台操作. 本文只安装nginx服务器,后面的文章会配置其他环节,如PHP.Java.MySQL等. 在安装之前需要完成如下两项工作. 找一个工具上传文件(如nginx安装包) 连接到服务器的Console上,

9分钟教程之阿里云服务器搭建wordpres站点

导语 前面讲了怎么配置阿里云服务器,今天讲讲怎么在阿里云服务器快速搭建wordpress网站. 下载wordpress wordpress最新下载地址:https://wordpress.org/latest.zip,用unzip解压下载下来的压缩包,把文件夹重命名为网站名称, unzip latest.zip mv latest idoras.com 这样就得到一个以网站域名命名的项目. 配置nginx 要想从浏览器上访问你的网站,你需要配置nginx网站服务,然后启动nginx服务. ngi