VPN 对比:

OpenVPN: 客户端连接太麻烦,放弃
PPTP VPN:版本较高的苹果手机没有 PPTP VPN 的连接方式,放弃
L2TP VPN:支持所有平台,客户端连接容易,最终选择部署 L2TP VPN

一键安装 L2TP VPN :

wget --no-check-certificate https://raw.githubusercontent.com/teddysun/across/master/l2tp.sh
sh l2tp.sh

修改配置:

  1. 编辑 /etc/ipsec.conf ,将 left、leftid 修改为公网IP ,并在 conn L2TP-PSK-noNAT 下加入 sha2-truncbug=yes
  2. 编辑 /etc/xl2tpd/xl2tpd.conf ,将 listen-addr 修改为公网IP
  3. 编辑 /etc/sysconfig/iptables ,替换为如下内容(红色字体为 VPN 虚拟网段):

*nat
:PREROUTING ACCEPT [39:3503]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 192.168.18.0/24 -o eth0 -j MASQUERADE
COMMIT
# Completed on Thu Jun 28 15:50:40 2012
# # Generated by iptables-save v1.4.7 on Thu Jun 28 15:50:40 2012
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [121:13264]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1194 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 1701 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 500 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 4500 -j ACCEPT
#
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -d 192.168.18.0/24 -j ACCEPT
-A FORWARD -s 192.168.18.0/24 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# # Completed on Thu Jun 28 15:50:40 2012

   4. 重启:

/etc/init.d/iptables restart
/etc/init.d/ipsec restart
/etc/init.d/xl2tpd restart

如果Windwos不能连接,参考:http://blog.sina.com.cn/s/blog_6390cb4c0101p8vb.html

本文参考:http://dingxuan.info/blog/post/setup-l2tp-vpn-server-with-ipsec-in-centos6.php?page=2&part=1

扩展:PPTP VPN 一键安装脚本 -- http://www.hi-vps.com/shell/vpn_centos6.sh





最新文章

  1. [AJAX系列]$.post(url,[data],[fn],[type])
  2. live555 直播arm-linux视频
  3. 一些用过的C#类库收集
  4. TCP粘包
  5. android app性能优化大汇总(内存性能优化)
  6. XSS之学习误区分析
  7. MVC-Easy-UI-datagrid-分页-查询
  8. python tcp socket 多线程
  9. etcd 集群搭建
  10. SQLServer之创建链接服务器
  11. Glide的 java.lang.RuntimeException: Expected instanceof GlideModule, but found:X.GlideModule@2e4554f
  12. Saltstack自动化操作记录(2)-配置使用 【转】
  13. 2019/1/9 6系列所有装置编号与SIM卡信息抓取
  14. Android-普通变量与普通方法内存图
  15. CQRS简单入门(Golang)
  16. 【Deep learning】NLP
  17. 解决HTML5标签兼容的办法搜集
  18. c++分块算法(暴力数据结构)
  19. OC中自定义init方法
  20. CCD和CMOS的差别

热门文章

  1. 设计模式(十一):从文Finder中认识"组合模式"(Composite Pattern)
  2. 快速打造跨平台开发环境 vagrant + virtualbox + box
  3. JavaScript学习总结(四)——jQuery插件开发与发布
  4. 【分布式】Zookeeper的服务器角色
  5. Linux A机器免密码SSH登录B机器
  6. 数百个 HTML5 例子学习 HT 图形组件 – 拓扑图篇
  7. alienware Win8 系统安装
  8. 分布式文件系统 - FastDFS 配置 Nginx 模块及上传测试
  9. java IO流详解
  10. 利用Java动态生成 PDF 文档