教育资源为主的文档平台

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

网友关注

2013年陕西省公务员面试真题解读(8月26日)
2008年陕西省公务员考试面试试题
2008年陕西省公务员考试行测真题
2010年陕西省上半年公务员考试申论真题参考答案
2008年陕西省公务员考试申论真题
2014年6月15日陕西省考汉中、西安、渭南行政面试真题
2011年4月24日陕西公务员考试行测真题
2013年陕西省公务员面试真题解读(8月28日)
2010年陕西省公务员考试面试试题
2014年6月16日上午陕西省考汉中行政系统面试真题
2009年7月11日陕西西安公务员面试真题含解析
2014年陕西省公务员考试申论真题答案及解析
2012陕西公务员考试行测真题
2010年陕西省上半年公务员考试申论真题
2011年陕西省公务员考试面试试题及深度解析(6月14日)
2009年陕西省公务员考试面试试题
2015陕西公务员考试申论真题(来源网络)
2008年陕西公务员面试真题解析8
2009年陕西省公务员考试行测真题
2010年陕西省下半年公务员考试申论真题
2010年陕西省下半年公务员考试行测真题参考答案
2014年陕西公务员考试行测真题
2014年6月14日上午陕西省考村官特设选调生面试真题
历年陕西公务员考试申论主题及题型分析
2011年6月22日陕西商洛市公务员面试真题
2013年陕西公务员考试行测真题
陕西公务员考试历年题型题量分析
2010年陕西省下半年公务员考试行测真题
2014年陕西公务员考试行测模拟试卷答案
2014年6月15日陕西省考汉中特设行政岗位面试真题

网友关注视频

冀教版小学数学二年级下册第二单元《有余数除法的竖式计算》
19 爱护鸟类_第一课时(二等奖)(桂美版二年级下册)_T3763925
沪教版八年级下次数学练习册21.4(2)无理方程P19
冀教版英语三年级下册第二课
冀教版小学数学二年级下册第二单元《有余数除法的整理与复习》
沪教版牛津小学英语(深圳用) 四年级下册 Unit 12
北师大版八年级物理下册 第六章 常见的光学仪器(二)探究凸透镜成像的规律
【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,广东省
精品·同步课程 历史 八年级 上册 第15集 近代科学技术与思想文化
化学九年级下册全册同步 人教版 第25集 生活中常见的盐(二)
沪教版牛津小学英语(深圳用) 四年级下册 Unit 3
沪教版八年级下册数学练习册20.4(2)一次函数的应用2P8
沪教版八年级下册数学练习册21.3(3)分式方程P17
冀教版小学数学二年级下册第二单元《租船问题》
冀教版小学数学二年级下册第二单元《余数和除数的关系》
外研版英语七年级下册module3 unit2第二课时
外研版英语三起6年级下册(14版)Module3 Unit1
19 爱护鸟类_第一课时(二等奖)(桂美版二年级下册)_T502436
沪教版牛津小学英语(深圳用) 五年级下册 Unit 10
第12章 圆锥曲线_12.7 抛物线的标准方程_第一课时(特等奖)(沪教版高二下册)_T274713
【部编】人教版语文七年级下册《老山界》优质课教学视频+PPT课件+教案,安徽省
苏科版八年级数学下册7.2《统计图的选用》
冀教版小学数学二年级下册第二周第2课时《我们的测量》宝丰街小学庞志荣.mp4
《空中课堂》二年级下册 数学第一单元第1课时
3月2日小学二年级数学下册(数一数)
8 随形想象_第一课时(二等奖)(沪教版二年级上册)_T3786594
【部编】人教版语文七年级下册《逢入京使》优质课教学视频+PPT课件+教案,安徽省
七年级英语下册 上海牛津版 Unit3
第8课 对称剪纸_第一课时(二等奖)(沪书画版二年级上册)_T3784187
冀教版小学数学二年级下册1