教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 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月月考生物试卷

网友关注视频

第19课 我喜欢的鸟_第一课时(二等奖)(人美杨永善版二年级下册)_T644386
【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,湖北省
【部编】人教版语文七年级下册《逢入京使》优质课教学视频+PPT课件+教案,安徽省
沪教版八年级下册数学练习册20.4(2)一次函数的应用2P8
北师大版八年级物理下册 第六章 常见的光学仪器(二)探究凸透镜成像的规律
外研版英语七年级下册module1unit3名词性物主代词讲解
【获奖】科粤版初三九年级化学下册第七章7.3浓稀的表示
【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,广东省
冀教版英语五年级下册第二课课程解读
冀教版小学数学二年级下册第二单元《有余数除法的简单应用》
沪教版八年级下册数学练习册一次函数复习题B组(P11)
第五单元 民族艺术的瑰宝_15. 多姿多彩的民族服饰_第二课时(市一等奖)(岭南版六年级上册)_T129830
冀教版小学数学二年级下册第二周第2课时《我们的测量》宝丰街小学庞志荣
化学九年级下册全册同步 人教版 第25集 生活中常见的盐(二)
沪教版牛津小学英语(深圳用) 六年级下册 Unit 7
8.练习八_第一课时(特等奖)(苏教版三年级上册)_T142692
沪教版牛津小学英语(深圳用) 五年级下册 Unit 12
第4章 幂函数、指数函数和对数函数(下)_六 指数方程和对数方程_4.7 简单的指数方程_第一课时(沪教版高一下册)_T1566237
沪教版牛津小学英语(深圳用) 五年级下册 Unit 10
北师大版数学四年级下册第三单元第四节街心广场
沪教版八年级下册数学练习册21.3(3)分式方程P17
沪教版八年级下次数学练习册21.4(2)无理方程P19
第12章 圆锥曲线_12.7 抛物线的标准方程_第一课时(特等奖)(沪教版高二下册)_T274713
冀教版英语四年级下册第二课
19 爱护鸟类_第一课时(二等奖)(桂美版二年级下册)_T502436
七年级英语下册 上海牛津版 Unit9
小学英语单词
【部编】人教版语文七年级下册《老山界》优质课教学视频+PPT课件+教案,安徽省
精品·同步课程 历史 八年级 上册 第15集 近代科学技术与思想文化
外研版英语七年级下册module3 unit1第二课时