Linux 下建立VPN客户端
来源:互联网 发布:蓝牙鼠标怎么连接mac 编辑:程序博客网 时间:2024/05/18 00:03
我在阿里云上买了一台云主机,在上面部署了wordpress(博客)、tomcat(我的一个站点),机器抗不住了,mysql服务器频繁宕机。再来说说我的云主机配置吧,一核CPU、1G内存、无磁盘,哈哈!也花了我近70多元钱,一年算下来也发不少钱呀,有些心疼,不打算买更高配置。家里正好有台闲置笔记本,就废物再利用吧,用它来当我的另外一台主机,跟我的云主机联合起来,这样就不用在掏银子了。呵呵
就用VPN(以前买的)来搞这件事把,下面把我用VPN连接云主机和家里笔记本的步骤总结一下:
云主机配置:Centos6.5 X86_64
安装pptp和pptp-setup
# yum install ppp# yum install pptp # yum install pptp-setup
创建配置
#pptpsetup –create codelife –server ip地址 –username codelife –password 密码 –encrypt
向内核注册ppp_mppe模块
# modprobe ppp_mppe
检查配置结果
# cat /etc/ppp/chap-secrets vpn_user vpn_company "vpm_pass" *#cat /etc/ppp/peers/vpn_companypty "pptp vpn.company.com --nolaunchpppd"lockrefuse-eapnoauthnobsdcompnodeflatename vpn_userremotename vpn_companyipparam vpn_company require-mppe-128
连接VPN
#pppd call codelife
验证连接情况
通过如下命令验证连接情况
# ip a |grep ppp
排错
如果上面命令没有任何返回,则说明连接失败了,可以参看/var/log/message文件了解错误的原因
# tail -f /var/log/message | grep ppp
1)服务端不支持MPPE
若错误为MPPE required but peer negotiation failed
说明服务端不支持MPPE加密,pptpsetup时不需要使用—encrypt选项。可以手工修/etc/ppp/peers/codelife 文件
# vim /etc/ppp/peers/codelife 去除或者注释掉require-mppe-128
2)客户端不支持MPPE
若错误为LCP terminated by peer (MPPE required but peer refused)
说明服务端要求MPPE加密,但是客户端不支持,pptpsetup时漏掉了—encrypt选项。解决方法正好相反,往/etc/ppp/peers/codelife文件 添加一行require-mppe-128
在验证
执行命令ifconfig可以看到多出一个连接
配置路由表
连接成功后,通过route命令可参看路由表信息
# route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface192.168.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0192.168.228.0 0.0.0.0 255.255.255.0 U 0 0 0 eth00.0.0.0 192.168.228.153 0.0.0.0 UG 0 0 0 eth0
可见,只添加了一条访问192.168.0.1 IP的路由信息。
访问特定网段
假设你想让登陆VPN服务器的客户端互相访问,那么,你需要在客户端上加入192.168.0.0网段,即:
#
route add -net 192.168.0.0 netmask 255.255.255.0 dev ppp0# route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface192.168.0.1 * 255.255.255.255 UH 0 0 0 ppp0192.168.228.0 * 255.255.255.0 U 0 0 0 eth0192.168.0.0 * 255.255.255.0 U 0 0 0 ppp0default 192.168.228.153 0.0.0.0 UG 0 0 0 eth0然后使用ping命令测试# ping 192.168.0.201 -c 3PING 192.168.0.201 (192.168.0.201) 56(84) bytes of data.64 bytes from 192.168.0.201: icmp_seq=1 ttl=127 time=90.1 ms64 bytes from 192.168.0.201: icmp_seq=2 ttl=127 time=57.2 ms64 bytes from 192.168.0.201: icmp_seq=3 ttl=127 time=61.9 ms--- 192.168.0.201 ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 1999msrtt min/avg/max/mdev = 57.299/69.794/90.144/14.515 ms
这里,192.168.0.201是另一台客户端,同样,若希望访问网段也需要加入类似的路由信息。
全部流量都通过VPN
如果您想连接VPN后,全部流量都通过VPN出去(翻墙),就像Windows 那样。那么按上面的步骤可能会遇到一些问题。因为,Linux的默认网关只能是一个,所以,这需要分两种情况。
a)没有默认网关
这时,你只需设置一个默认路由即可,例如:
# route add -net 0.0.0.0 dev ppp0
b)已有默认网关
但更多情况下,默认网关都是存在的。例如,在这里的局域网内部已经设置了默认网关为192.168.228.153,例如:
# tracert www.163.comtraceroute to www.163.com (183.60.136.70), 30 hops max, 40 byte packets1 192.168.228.153 (192.168.228.153) 0.634 ms 0.879 ms 0.879 ms2 1.64.63.58.broad.gz.gd.dynamic.163data.com.cn (58.63.64.1) 16.410 ms 16.660 ms 17.150 ms
若像上面那样添加一条路由是不行的,需要先让访问VPN服务端的流量可通过,然后才能转发其他的数据包。
# ip route replace 124.248.205.115 via 192.168.228.153 dev eth0 src 192.168.228.135# ip route replace default dev ppp0
更新后的路由表:
# route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface192.168.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0124.248.205.115 192.168.228.153 255.255.255.255 UGH 0 0 0 eth0192.168.228.0 0.0.0.0 255.255.255.0 U 0 0 0 eth00.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
访问路径:# tracert www.163.comtraceroute to www.163.com (183.60.136.70), 30 hops max, 40 byte packets1 192.168.0.1 (192.168.0.1) 33.461 ms 33.665 ms 33.872 ms2 switch1.hongkong.exchange.gigelayer.com (124.248.205.188) 35.284 ms 35.558 ms 35.799 ms3 in.core-rt-003.gi.gi0.3.sunnyvision.com (123.242.225.1) 36.502 ms 36.747 ms 40.479 ms
当然,关闭连接时,也是需要恢复默认网关的:
# ip route del 124.248.205.115 via 192.168.228.153 dev eth0 src 192.168.228.135# ip route add default via 192.168.228.153 关闭连接
启动连接很简单,但停止不能使用ifconfig pp0 down,否则只是禁用了ppp0网卡,后台连接还是存在的。当然,可以杀进程 (killall pppd)来断开连接。不过,ppp工具包提供了更好用的脚本。但需要您进行一些额外的工作:
# cp /usr/share/doc/ppp-2.4.5/scripts/pon /usr/sbin/# cp /usr/share/doc/ppp-2.4.5/scripts/poff /usr/sbin/# chmod +x /usr/sbin/pon# chmod +x /usr/sbin/poff然后使用下面的命令启动和关闭连接即可:# pon vpn# poff vpn
参考资料:
http://codelife.me/blog/2013/06/25/setup-pptp-vpn-client-in-centos-6/
http://my.oschina.net/luckysym/blog/227176
- Linux下建立VPN客户端
- Linux 下建立VPN客户端
- Linux下VPN客户端配置
- linux下vpn客户端strongswan配置
- ubuntu下建立PPTP-VPN客户端拨号连接 [已删除]
- ubuntu下建立PPTP-VPN客户端拨号连接
- ubuntu下建立PPTP-VPN客户端拨号连接(绝对可用)
- linux下安装vpn服务器和vpn客户端
- CMD下建立VPN
- Linux VPN 客户端设置
- linux vpn客户端链接
- 快速建立linux下的vpn服务器做加密代理
- 在Linux下建立VPN服务器来做加密代理
- 快速建立linux下的vpn服务器做加密代理
- 快速建立linux下的vpn服务器做加密代理
- linux下建立服务器与客户端
- VPN连接:win7下建立VPN连接
- VPN连接:win7下建立VPN连接
- [matlab入门] 无理数近似计算
- Objective-C 语法总结
- Android百度地图开发之开发第一个小应用,显示基础的地图页面
- 【bzoj 2750】: [HAOI2012]Road
- Perl 元字符
- Linux 下建立VPN客户端
- SEAJS 的使用 – 配置,及版本号控制
- 使用Django来清理数据库中的数据
- oc_study27
- Android中应该注意的细节
- 黑马程序员——C语言------指针和指针变量
- 官网MapReduce实例代码详细批注
- 黑马程序员——Java开发前奏 JDK Eclipse Tomcat的安装与配置
- easeljs web开发围住神经小猫咪【三】