阿里云CentOS 7无外网IP的ECS访问外网(配置网关服务器)
说明:
1、必须要有一台机器具有外网IP的ECS。
2、如果不想配置具有外网IP的ECS时,可以购买NAT网关,但需要钱,贵。下面会说明NAT网关的配置。
3、最后吐槽一下阿里云VPC网关导致不能按照配置普通网关一样配置(参考:https://www.cnblogs.com/EasonJim/p/10206728.html),必须结合VPC配置0.0.0.0/0来进行下一跳,不然你在ECS怎么设置都无法成功。其实这个问题是由于VPC本身最上层做了NAT,并通过route查看会发现253这个地址有VPC占用,无论怎么配置0.0.0.0的下一跳都会先转到253这个地址。
下面是具体的配置:
环境:
ECS1(没外网IP):172.18.6.247
ECS2(有外网IP,其实是VPC做了NAT):172.18.6.248
1、具有外网IP的ECS2配置网关:
# 开启转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
# 生效
sysctl -p
# 配置iptables做SNAT
iptables -t nat -I POSTROUTING -s 172.18.6.0/24 -j SNAT --to-source 172.18.6.248
# 上述可以理解成:iptables -t nat -I POSTROUTING -s VPC的IP段 -j SNAT --to-source 有公网IP的ECS内网IP
2、在VPC增加0.0.0.0/0的下一跳为ECS2实例

那么此时在登录ECS1时,不用设置网关或者设置了网关都可以访问外网。
3、如果要做DNAT时,如下操作即可:
iptables -t nat -I PREROUTING -p tcp --dport 50022 -j DNAT --to 172.18.6.247:22
# 可以这样理解: iptables -t nat -I PREROUTING -p tcp --dport 外网IP的ECS端口 -j DNAT --to 只有内网IP的ECS的IP:端口
4、如果想要换成够买NAT网关来实现时,上面的配置基本不用,直接在VPC上这样配置即可实现上面SNAT和DNAT的全部功能。

参考:
https://yq.aliyun.com/articles/607330
阿里云CentOS 7无外网IP的ECS访问外网(配置网关服务器)的更多相关文章
- 阿里云CentOS使用iptables禁止某IP访问
在CentOS下封停IP,有封杀网段和封杀单个IP两种形式.一般来说,现在的攻击者不会使用一个网段的IP来攻击(太招摇了),IP一般都是散列的.于是下面就详细说明一下封杀单个IP的命令,和解封单个IP ...
- 阿里云服务器 - node启动服务的时候只有监听内网IP才可以供外网访问
阿里云服务器 - node启动服务的时候只有监听内网IP才可以供外网访问
- 在VMWare下为CentOS设置静态IP通过NAT访问外网
一.背景 安装好的CentOS系统默认是通过DHCP自动分配地址来共享主机的IP以达到访问外网的目的,但是因为莫名的原因无法访问外网.只好改为通过静态IP的方式访问外网. 二.操作步骤 2.1 确认开 ...
- 阿里云centos postgresql9.4源码安装 精简步骤、问题解答
阿里云centos环境源码安装postgresql9.4 本文的安装步骤主要来源于http://www.cnblogs.com/mchina/archive/2012/06/06/2539003.ht ...
- 阿里云Centos+Django+Nginx+uWSGI
针对系统中自带的Python2.7版本 1.安装python-devel yum install python-devel 2.安装uwsgi pip install uwsgi 3.测试uwsgi是 ...
- 阿里云centos 安装和配置 DokuWiki
安装 1) 添加虚拟主机:由于我的 阿里云CentOs服务器 安装了oneinstack的一键部署PHP.JAVA.Nginx等环境,所以域名配置很方便,照着文档一步一步做就可以了 cd /root/ ...
- 阿里云centos中mysql的安装及一些常识知识
------------------------------------------------------------------- 阿里云centos中mysql的安装 工具WinSCP v ...
- 阿里云Centos 7安装MongoDB 4.2.0
背景:最近公司项目需要将后台接口优化到100ms内.因此需要对接口逻辑,数据优化做处理, 正好使用到了Redis缓存,mysql,mongoDB的优化,今天记录一下在阿里云centos上安装mongo ...
- VMWare中CentOS7 设置固定IP且能够访问外网
最近搭建kubernetes集群环境时遇到一个问题,CentOS7在重启后IP发生变化导致集群中etcd服务无法启动后集群环境变得不可用,针对这种情况,必须要对CentOS7设置固定IP且可以访问外网 ...
随机推荐
- Tychonov Theorem
(Remark: The proof presented in this post is a reorganization and interpretation of that given by Ja ...
- 配置文件——节点<machineKey>的作用,强随机生成
<machineKey>这个节允许你设置用于加密数据和创建数字签名的服务器特定的密钥.ASP.NET自动使用它来保护表单验证Cookie,你也可以将它用于受保护的视图状态数据.同时,这个密 ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(1)-5项目数据库操作封装操作-EF框架
EF框架有三种基本的方式:DB First(数据库优先),Model First(模型优先),Code First(代码优先). Entity Framework4.1之前EF支持“Database ...
- ubuntu12.04 mysql 卸载安装
参考: https://blog.csdn.net/qq_26093511/article/details/52847943
- python 格式话-占位符
格式化输出:name = qjage = 30job = itsalary = 6000例1:字符串拼接方法,不建议,因为会在内存中开辟多块内存空间. info = '''---------- inf ...
- mysql查看变量/配置文件位置
//查看所有变量 show global variables //查看某个变量的值 show global variables where variable_name like '%innodb_fl ...
- YII框架增删改查常用语句
//实例化db $db = new \yii\db\Query(); //插入 $db->createCommand()->insert('user', [ 'name' => 't ...
- 20165220 Java第三周学习总结
1.教材学习内容总结 类与对象 类与对象的关系:要产生对象必须先定义类,类是对象的设计图,对象是类的实例 为个别对象的数据成员指定值的方式是:对象.对象成员 注意“一类一文件” 类在定义时要使用关键词 ...
- SVM:随机产生100个点,建立模型,找出超平面方程——Jaosn niu
import numpy as np import pylab as pl from sklearn import svm # we create 40 separable points #np.ra ...
- 【JavaScript】快速入门
摘抄地址快速入门 No1: JavaScript严格区分大小写 No2: JavaScript不区分整数和浮点数,统一用Number表示 NaN表示Not a Number,当无法计算结果时用NaN表 ...