教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> IT计算机> Web服务> 如何配置无公网IP地址的云主机访问Internet

如何配置无公网IP地址的云主机访问Internet

上传者:刘卫军
|
上传时间:2016-09-08
|
次下载

如何配置无公网IP地址的云主机访问Internet

抛开云主机环境来说,通常一个办公网络内所有的主机都没有公网IP地址,但他们都能通过具有IP地址的路由器(网关)设备访问Internet,此设备只需要具备NAT和转发功能即可。具有这样功能的设备当然可以用某台计算机代替。

下面是一个最简单的模型:

主机A(服务端):

网卡1:内网IP地址1

网卡2:公网IP地址3或者能访问Internet的某个IP地址3

主机B(客户端):

网卡1:内网IP地址2

主机B想通过主机A访问Internet,只需要主机B指定主机A为网关,主机A能够将来自主机B的包伪装成主机A上的网卡2上的IP即可(sNAT)。

因此云主机环境也是一样,只要保证两个云主机间内网是连通的,另一台云主机能访问Internet即可。如果某两个云主机内网不通,但可以通过vpn连通,也可以实现。

(一)下面是两个主机间通过内网IP直接连接模拟访问Internet的例子。

主机A(服务端):

网卡1:10.20.0.128(eth0,无Internet访问)

网卡2:192.168.1.52(eth1,Internet访问)

主机B(客户端):

网卡1:10.20.0.129(eth0,无Internet访问)

主机A操作:

开启iptables转发功能:

1

2

3

sysctl -w net.ipv4.conf.default.accept_source_route=1  

sysctl -w net.ipv4.conf.default.rp_filter=0   

sysctl -w net.ipv4.ip_forward=1

配置iptables NAT规则:

1

2

modprobe iptable_nat  

iptables -t nat -A POSTROUTING -s 10.20.0.0/24 -o eth1 -j MASQUERADE

删除iptables拒绝转发规则:

1

iptables -D FORWARD -j REJECT --reject-with icmp-host-prohibited

主机B操作:

将默认网关配置成主机A的网卡1地址:

1

2

route add -host 10.20.0.128/32 dev eth0  

route add default gw 10.20.0.128 dev eth0

(二)下面是两个主机间通过OpenVPN连接模拟访问Internet的例子。

主机A(服务端,CentOS6.x):

网卡1:10.20.0.128(eth0,无Internet访问)

网卡2:192.168.1.52(eth1,Internet访问)

主机B(客户端,CentOS6.x):

网卡1:10.20.0.129(eth0,无Internet访问)

主机A操作:

安装OpenVPN(安装OpenVPN也可以参考《CentOS6.7安装OpenVPN服务端》):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 

yum -y install openssl openvpn 

cd /etc/openvpn 

git clone https://github.com/OpenVPN/easy-rsa.git 

cd /etc/openvpn/easy-rsa/ 

git checkout -b v2.2.1 

cp -r easy-rsa/2.0 /etc/openvpn/easy-rsa/ 

cd /etc/openvpn/easy-rsa/2.0/ 

vim im vars

export EASY_RSA="`pwd`" 

export OPENSSL="openssl" 

export PKCS11TOOL="pkcs11-tool" 

export GREP="grep" 

export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA` 

export KEY_DIR="$EASY_RSA/keys" 

echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR 

export PKCS11_MODULE_PATH="dummy"

export PKCS11_PIN="dummy" 

export KEY_SIZE=2048 

export CA_EXPIRE=3650 

export KEY_EXPIRE=3650 

export KEY_COUNTRY="CN" 

export KEY_PROVINCE="Shandong" 

export KEY_CITY="QingDao" 

export KEY_ORG="51devops" 

export KEY_EMAIL="uberurey_ups@163.com" 

export KEY_OU="Ops" 

export KEY_NAME="51devops"

生成OpenVPN 证书以及key:

1

2

3

4

5

6

7

8

source vars 

./clean-all 

./pkitool --initca 

./pkitool --server node1.51devops.com 

./build-dh 

# ./build-key node1.51devops.com 

./build-key node2.51devops.com

chmod 400 /etc/openvpn/easy-rsa/2.0/keys/node1.51devops.com.key

编写一个OpenVPN Server端的配置文件:

vim /etc/openvpn/server.conf

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

port 1194 

proto tcp 

dev tun 

ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt 

cert /etc/openvpn/easy-rsa/2.0/keys/node1.51devops.com.crt 

key /etc/openvpn/easy-rsa/2.0/keys/node1.51devops.com.key 

dh /etc/openvpn/easy-rsa/2.0/keys/dh2048.pem 

server 10.8.0.0 255.255.255.0 

ifconfig-pool-persist clientiplist.txt 

client-to-client 

duplicate-cn   

keepalive 10 120 

comp-lzo 

persist-key 

persist-tun 

status /var/log/openvpn-status.log 

log /var/log/openvpn.log 

log-append  /var/log/openvpn.log 

verb 3

启动OpenVPN并配置iptables:

1

2

3

4

5

6

7

8

9

service openvpn start 

service openvpn status 

ifconfig tun0 

cat /var/log/openvpn.log 

cat /var/log/openvpn-status.log 

iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 1194 -j ACCEPT 

# iptables -I INPUT -m state --state NEW -m udp -p udp --dport 1194 -j ACCEPT 

iptables-save || service iptables status 

service iptables save

编辑内核参数,启用转发功能:

1

2

3

4

vim /etc/sysctl.conf 

net.ipv4.conf.default.accept_source_route = 1 

net.ipv4.conf.default.rp_filter = 0 

net.ipv4.ip_forward = 1

或者:

1

2

3

sysctl -w net.ipv4.conf.default.accept_source_route=1 

sysctl -w net.ipv4.conf.default.rp_filter=0 

sysctl -w net.ipv4.ip_forward=1

配置iptables,配置sNAT和FORWARD规则:

1

2

3

4

modprobe iptable_nat 

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1 -j MASQUERADE 

iptables -D FORWARD -j REJECT --reject-with icmp-host-prohibited 

service iptables save || iptables-save > /etc/sysconfig/iptables

tips:也可以清空iptables所有配置,再添加允许规则,这样可以避开一些reject规则。

可以通过iptables -t nat -nL -v命令查看nat表状态。

1

iptables -t nat -A POSTROUTING -s 10.20.0.0/24 -o eth1 -j MASQUERADE

配置主机B(客户端)

安装OpenVPN客户端:

1

2

yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 

yum -y install openssl openvpn

编辑OpenVPN Client配置文件:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

vim /etc/openvpn/client.conf 

client 

dev tun 

port 1194 

proto tcp 

remote 10.20.0.128 1194 

resolv-retry infinite 

nobind 

persist-tun 

ca /etc/openvpn/ca.crt 

cert /etc/openvpn/node2.51devops.com.crt 

key /etc/openvpn/node2.51devops.com.key 

remote-cert-tls server 

script-security 3 

ns-cert-type server 

comp-lzo adaptive 

verb 3 

mute 20

缩小证书文件的权限,只允许当前用户访问,不允许组内其他用户和其他组访问

1

2

chmod 400 /etc/openvpn/node2.51devops.com.key

service openvpn restart

配置路由:

1

2

route add -host 10.8.0.1/32 dev tun0 

route add default gw 10.8.0.1 dev tun0

测试连接:

1

2

ping -c4 10.8.0.1

ping -c4 114.114.114.114

OpenVPN连接前需要注意证书一定配置正确,时间同步,软件版本最好保持一致、OpenSSL软件包升级到最新版本。

tag:Linux网络,OpenVPN配置,iptables sNAT

 

本文出自 “通信,我的最爱” 博客,http://dgd2010.blog.51cto.com/1539422/1812745

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

下载文档

热门试卷

2016年四川省内江市中考化学试卷
广西钦州市高新区2017届高三11月月考政治试卷
浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
广西钦州市钦州港区2017届高三11月月考政治试卷
广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
广西钦州市高新区2016-2017学年高二11月月考政治试卷
广西钦州市高新区2016-2017学年高一11月月考政治试卷
山东省滨州市三校2017届第一学期阶段测试初三英语试题
四川省成都七中2017届高三一诊模拟考试文科综合试卷
2017届普通高等学校招生全国统一考试模拟试题(附答案)
重庆市永川中学高2017级上期12月月考语文试题
江西宜春三中2017届高三第一学期第二次月考文科综合试题
内蒙古赤峰二中2017届高三上学期第三次月考英语试题
2017年六年级(上)数学期末考试卷
2017人教版小学英语三年级上期末笔试题
江苏省常州西藏民族中学2016-2017学年九年级思想品德第一学期第二次阶段测试试卷
重庆市九龙坡区七校2016-2017学年上期八年级素质测查(二)语文学科试题卷
江苏省无锡市钱桥中学2016年12月八年级语文阶段性测试卷
江苏省无锡市钱桥中学2016-2017学年七年级英语12月阶段检测试卷
山东省邹城市第八中学2016-2017学年八年级12月物理第4章试题(无答案)
【人教版】河北省2015-2016学年度九年级上期末语文试题卷(附答案)
四川省简阳市阳安中学2016年12月高二月考英语试卷
四川省成都龙泉中学高三上学期2016年12月月考试题文科综合能力测试
安徽省滁州中学2016—2017学年度第一学期12月月考​高三英语试卷
山东省武城县第二中学2016.12高一年级上学期第二次月考历史试题(必修一第四、五单元)
福建省四地六校联考2016-2017学年上学期第三次月考高三化学试卷
甘肃省武威第二十三中学2016—2017学年度八年级第一学期12月月考生物试卷

网友关注

西藏公务员行测言语理解练习题03.23
西藏公务员行测言语理解练习题答案03.09
西藏公务员行测判断推理练习题答案03.14
西藏公务员面试结构化面试模拟题3.15
西藏公务员结构化面试模拟题答案3.22
西藏公务员面试结构化面试模拟题答案3.26
西藏公务员面试结构化面试模拟题3.16
西藏公务员行测言语理解练习题答案03.23
西藏公务员面试结构化面试模拟题答案3.13
西藏公务员面试结构化面试模拟题3.21
西藏公务员面试结构化面试模拟题答案3.12
西藏公务员行测资料分析练习题03.22
西藏公务员面试结构化面试模拟题3.20
西藏公务员行测判断推理练习题03.21
西藏公务员行测资料分析练习题答案03.13
西藏公务员面试结构化面试模拟题3.9
西藏公务员行测判断推理练习题03.14
西藏公务员行测数量关系练习题答案03.20
西藏公务员行测判断推理练习题答案03.19
西藏公务员行测言语理解练习题03.09
西藏公务员行测资料分析练习题答案03.26
西藏公务员行测资料分析练习题03.13
西藏公务员行测数量关系练习题03.15
西藏公务员面试结构化面试模拟题3.13
西藏公务员行测判断推理练习题03.12
西藏公务员面试结构化面试模拟题答案3.9
西藏公务员面试结构化面试模拟题3.26
西藏公务员面试结构化面试模拟题3.12
西藏公务员行测资料分析练习题03.26
西藏公务员面试结构化面试模拟题答案3.16

网友关注视频

小学英语单词
苏科版数学八年级下册9.2《中心对称和中心对称图形》
《小学数学二年级下册》第二单元测试题讲解
沪教版八年级下册数学练习册21.4(1)无理方程P18
30.3 由不共线三点的坐标确定二次函数_第一课时(市一等奖)(冀教版九年级下册)_T144342
沪教版牛津小学英语(深圳用) 四年级下册 Unit 12
河南省名校课堂七年级下册英语第一课(2020年2月10日)
沪教版八年级下次数学练习册21.4(2)无理方程P19
【部编】人教版语文七年级下册《过松源晨炊漆公店(其五)》优质课教学视频+PPT课件+教案,辽宁省
【部编】人教版语文七年级下册《老山界》优质课教学视频+PPT课件+教案,安徽省
外研版英语七年级下册module3 unit2第一课时
化学九年级下册全册同步 人教版 第25集 生活中常见的盐(二)
【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,湖北省
第五单元 民族艺术的瑰宝_16. 形形色色的民族乐器_第一课时(岭南版六年级上册)_T3751175
沪教版八年级下册数学练习册20.4(2)一次函数的应用2P8
飞翔英语—冀教版(三起)英语三年级下册Lesson 2 Cats and Dogs
七年级下册外研版英语M8U2reading
【部编】人教版语文七年级下册《过松源晨炊漆公店(其五)》优质课教学视频+PPT课件+教案,江苏省
七年级英语下册 上海牛津版 Unit5
8.对剪花样_第一课时(二等奖)(冀美版二年级上册)_T515402
二年级下册数学第一课
沪教版牛津小学英语(深圳用) 四年级下册 Unit 2
3.2 数学二年级下册第二单元 表内除法(一)整理和复习 李菲菲
苏科版数学 八年级下册 第八章第二节 可能性的大小
第12章 圆锥曲线_12.7 抛物线的标准方程_第一课时(特等奖)(沪教版高二下册)_T274713
化学九年级下册全册同步 人教版 第18集 常见的酸和碱(二)
三年级英语单词记忆下册(沪教版)第一二单元复习
外研版英语七年级下册module3 unit2第二课时
苏科版数学七年级下册7.2《探索平行线的性质》
19 爱护鸟类_第一课时(二等奖)(桂美版二年级下册)_T3763925