这个是逗比根据地的备份镜像站(非官方)。牢记域名: [doubibackup.com]。搜索:标签云
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程
广告

CentOS/Debian/Ubuntu一键安装IPSEC/IKEV2 VPN脚本

Shell脚本 Toyo 58评论
广告
本文最后更新于 2018年7月19日 12:28 可能会因为没有更新而失效。如已失效或需要修正,请留言!

Ubuntu/CentOS搭建IPSec/IKEv2 VPN一键安装脚本。适用于WindowsPhone,iOS,Android和PC设备。

最新更新内容请看Github项目说明:https://github.com/quericy/one-key-ikev2-vpn


其他VPN教程:

安装说明

检查PPP/TUN环境

首先要检查VPS的TUN和PPP是否开启。

cat /dev/net/tun

返回的必须是:

cat: /dev/net/tun: File descriptor in bad state

运行:

cat /dev/ppp

返回的必须是:

cat: /dev/ppp: No such device or address

如果返回内容不是下图的结果的话,请与VPS提供商联系开启PPP和TUN权限。

当然,脚本在安装时也会执行检查,如果不适用于安装,脚本会予以提示。

用法很简单

总结成一句话就是:除了VPS类型要选对以外,其他的一路回车就好了。

特性

服务端要求:Ubuntu 14.04+ / Debian 7(本教程仅在此系统下测试,其他系统不保证) / CentOS 6

客户端:

iOS/OSX=>ikev1,ikev2

Andriod=>ikev1

WindowsPhone=>ikev2

其他Windows平台=>ikev2

可使用自己的私钥和根证书,也可自动生成

证书可绑定域名或ip

要是图方便可一路回车

最近更新

  1. 使用新版strongswan(5.3.5),编译参数修改;
  2. 优化iptables包处理;
  3. 添加接口判断选择;
  4. 加入对iOS9的ikev2支持;
  5. DH组修改为2048,解决iOS9设备8分钟断开的问题;

服务端安装说明

下载脚本

wget --no-check-certificate https://raw.githubusercontent.com/quericy/one-key-ikev2-vpn/master/one-key-ikev2.sh

注:如需使用其他分支的脚本,请将上述url中的master修改为分支名称,各分支区别详见本页的分支说明

运行脚本

如果有需要使用自己的根证书请将私钥命名为ca.pem,将根证书命名为ca.cert.pem,放到脚本的相同目录下再运行该脚本
chmod +x one-key-ikev2.sh
bash one-key-ikev2.sh

除了第一个选择VPS类型,其他的不懂都可以 直接回车!

等待自动配置部分内容后,选择vps类型(OpenVZ还是Xen、KVM),选错将无法成功连接,请务必核实服务器的类型。

输入服务器ip或者绑定的域名(连接vpn时服务器地址将需要与此保持一致),以及证书的相关信息(C,O,CN),为空将使用默认值(default value),确认无误后按任意键继续

是否使用SNAT规则(可选).使用前请确保服务器具有不变的静态公网ip,可提升防火墙对数据包的处理速度.默认为不使用.

补充网卡接口信息,为空则使用默认值(Xen、KVM默认使用eth0,OpenVZ默认使用venet0).如果服务器使用其他公网接口需要在此指定接口名称,否则连接后可能无法访问外网)

输入两次pkcs12证书的密码(可以为空)

看到install Complete字样即表示安装完成。

默认用户名密码将以黄字显示,可根据提示自行修改配置文件中的用户名密码,多用户则在配置文件中按格式一行一个具体看这个说明,保存并重启服务生效。

使用SFTP来下载VPS中的证书。(我推荐使用filezilla,挺好用的!)

将提示信息中的证书文件 /root/my_key/ca.cert.pem 下载到本地,修改后缀名为.cer后,导入本地计算机

Android/IOS设备使用Ikev1无需导入证书,而是需要在连接时输入共享密钥,共享密钥即是提示信息中的黄字PSK.

客户端配置说明

连接的服务器地址和证书保持一致,即取决于签发证书ca.cert.pem时使用的是ip还是域名(默认为IP);

点击展开 查看更多

卸载方式

进入脚本所在目录的strongswan文件夹(因为默认是安装的最新版本,所以文件夹后面的版本号可能会不同)执行:

cd /root/strongswan-5.3.5
make uninstall

自行删除脚本所在目录的相关文件(one-key-ikev2.sh,strongswan.tar.gz,strongswan文件夹,my_key文件夹).

卸载后记得检查iptables配置.

分支说明

  • master分支:经过测试的相对稳定的版本;
  • dev-debian分支:如需在Debian6/7 下使用,请使用该分支的脚本,该脚本由bestoa修改提供;
  • dev分支:开发分支,使用最新版本的strongswan,未进过充分测试,用于尝试和添加一些新的功能,未来可能添加对L2TP的兼容支持,以及对ipv6的支持;

命令说明

# 启动VPN
ipsec start
# 查看VPN状态
ipsec status
# 重启VPN
ipsec restart
# 停止VPN
ipsec stop

开机启动

服务器重启后默认ipsec不会自启动,请命令手动开启,或添加/usr/local/sbin/ipsec start到自启动脚本文件中(如rc.local等):

Centos系统:

chmod +x /etc/rc.d/rc.local && echo "/usr/local/sbin/ipsec start" >> /etc/rc.d/rc.local

Ubuntu/Debian系统:

chmod +x /etc/rc.local && sed -i '$d' /etc/rc.local && echo "/usr/local/sbin/ipsec start" >> /etc/rc.local && echo "exit 0" >> /etc/rc.local

连上服务器后无法链接外网

打开sysctl文件:

vi /etc/sysctl.conf

找到 net.ipv4.ip_forward=1,删除前面的“#”注释符(按 I键 进入编辑模式),并保存退出(按 Esc键 退出编辑模式,然后输入 :wq 保存并退出)。

使用以下指令刷新sysctl:

sysctl -p

如遇报错信息,请重新打开/etc/syctl并将报错的那些代码用#号注释,保存后再刷新sysctl直至不会报错为止。

根据留言评论里 @callmeleifeng 的提醒,Openvz因为模板问题,可能会报错:

error: “net.bridge.bridge-nf-call-ip6tables” is an unknown key
error: “net.bridge.bridge-nf-call-iptables” is an unknown key
error: “net.bridge.bridge-nf-call-arptables” is an unknown key

给出的解决办法:

# 修复modprobe的:
rm -f /sbin/modprobe
ln -s /bin/true /sbin/modprobe

#修复sysctl的:
rm -f /sbin/sysctl
ln -s /bin/true /sbin/sysctl

大家如果出现这个问题,可以尝试一下。

添加/修改用户

打开配置文件,并按格式修改。

vi /usr/local/etc/ipsec.secrets
# vi 打开配置文件后,按I键 进入编辑模式,按格式修改,修改后,按ESC键退出编辑模式,然后输入 :wq 保存并退出。

默认配置如下,当然我又添加了一个用户作为示例。

用户名 %any : EAP "用户密码"

: RSA server.pem
: PSK "myPSKkey"
: XAUTH "myXAUTHPass"
myUserName %any : EAP "myUserPass"
Toyo %any : EAP "doub.io"

其他VPN教程:

本文转载自:https://quericy.me/blog/699/

参考资料:https://github.com/quericy/one-key-ikev2-vpn/tree/master

转载请超链接注明:逗比根据地 » CentOS/Debian/Ubuntu一键安装IPSEC/IKEV2 VPN脚本
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!

赞 (30)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(58)个小伙伴在吐槽
  1. 客户端只支持der格式的证书怎么办?
    ShadowDumb2018-10-10 12:59 回复
  2. 大佬,可以做到客户端分配静态ip地址么??
    ttt2018-08-23 17:29 回复
    • 这个脚本是我转载的,请去文章底部的原文链接里询问作者。
      Toyo2018-08-23 19:50 回复
  3. 老大,ipsec可以用于纯ipv6吗?
    Lighterman2018-08-10 17:20 回复
  4. VPN搭建完成,能够连上,但是无法上网。不知道iptables该怎么设置?
    Zeeer2018-06-08 04:32 回复
  5. 奇怪了 刚弄好可以用 3天后就不能用了 服务器ping的通
    111112018-03-14 01:50 回复
    • 一般来说,我不推荐使用VPN,VPN特征明显,很容易就会被干扰或者封锁,具体看地区,有的地区PPTP都不管,有的地区什么VPN都会被干扰/封锁,你这种情况可能是当地运营商干扰/封锁了这个VPN协议链接。
      Toyo2018-03-14 11:29 回复
  6. vmware自架 server: ubuntu 16.04 能連上vpn 做了ipv4 forward但不能連外網 是有其他port forwarding / firewall設置?
    Qoo記2018-01-23 00:16 回复
    • 另外連上vpn是掛了dmz 具體inward是什麼port?
      Qoo記2018-01-23 15:15 回复
  7. 老大,这个如果我想实现单用户限速和连接数限制,该怎么弄呢,请指教,用tc吗?
    糖sir2017-11-15 15:51 回复
    • 不清楚,VPN方面不了解。
      Toyo2017-11-16 13:43 回复
  8. 老大,这个教程多用户用什么软件管理啊?
    billysun12312017-10-29 15:34 回复
  9. 你好!请问blackberry怎么连接啊
    flyer2017-09-27 17:29 回复
  10. 大佬问一下,XAUTH "myXAUTHPass",这个是干什么用的,我在安卓ipsec*vpn中都没有找到这个。
    IFmeet2017-09-27 01:17 回复
  11. Resolving host,就谷歌上去很快
    Voin2017-08-23 13:56 回复
  12. 我是小白,修改完用户我就管了,我又重上发现没有保存修改,请问怎么样才能保存修改那? : RSA server.pem : PSK "myPSKkey" : XAUTH "myXAUTHPass" myUserName %any : EAP "myUserPass" Toyo %any : EAP "dou-bi.co"
    我有问提要问2017-08-17 20:27 回复
    • vi /usr/local/etc/ipsec.secrets
      # vi 打开配置文件后,按I键进入编辑模式,按格式修改,修改后,按ESC键退出编辑模式,然后输入 :wq 保存并退出。
      
      Toyo2017-08-18 11:10 回复
      • 谢谢
        我有问提要问2017-08-18 21:00 回复
  13. IOS下正常,Win10能连接但上不了谷歌,请教老大!
    Dadong2017-08-15 11:12 回复
  14. 老大问个问题,我搭建好的ikev2 ,下载谷歌网盘东西都特别快,但是现在GitHub上的东西就很慢,我ssh到主机上下载GitHub东西都很快,怎么回事
    壮士请留步2017-08-04 18:27 回复
  15. 安卓可以连接成功,但是无法上网咋回事?mac可以
    壮士请留步2017-08-03 16:23 回复
  16. 为什么拨号会809错误?
    p2017-06-27 13:04 回复
  17. 配置成功了之后,Google等很多的网页无法解析打开。Bing.com可以访问,一些论坛网页可以访问,不知道是什么原因,请大师指点,谢谢!
    Google2017-06-01 23:52 回复
    • 我也是同样情况,谷歌速度特别快。其他的有的就很慢 。下载谷歌网盘都是好几兆每秒
      壮士请留步2017-08-04 09:23 回复
  18. 要支持ipv6的话应该怎么设置呢?
    qaq2017-05-21 20:07 回复
  19. https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/README-zh.md 这里有 cisco ipsec xauth psk 的脚本 不需要证书的
    2017-05-19 12:14 回复
  20. 可以跟SS同时使用吗?
    2017-05-03 13:08 回复
    • 不冲突,只要端口不是一样。
      Toyo2017-05-03 13:36 回复
  21. 你好版主,请问IDCF的VPS使用该脚本的话,虚拟类型该选1还是2呢?(IDCF的VPS是VMware虚拟化的),另外,,IDCF的服务器使用的是内网IP,是否需要专门另行设置呢?
    Ju872017-03-17 22:46 回复
  22. 全部设置正确但是无法连接外网
    mmxvbn2017-01-10 19:23 回复
  23. ############################################################# # Install IKEV2 VPN for CentOS6.x/7 (32bit/64bit) or Ubuntu or Debian7/8.* # Intro: https://quericy.me/blog/699 # # Author:quericy # # Version:1.2.0 ############################################################# please choose the type of your VPS(Xen、KVM: 1 , OpenVZ: 2): your choice(1 or 2):1 wrong choice! wrong choice!?为什么会选择错误
    bb2017-01-04 09:40 回复
  24. 没有找到/root/my_key/ca.cert.pem 没有my_key这个文件夹
    2016-12-09 23:56 回复
  25. no netkey IPsec stack detected no KLIPS IPsec stack detected no known IPsec stack detected, ignoring! 这个错误是什么意思
    熊掌2016-12-07 11:55 回复
  26. 执行sysctl -p老报错: error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key error: "net.bridge.bridge-nf-call-iptables" is an unknown key error: "net.bridge.bridge-nf-call-arptables" is an unknown key 网络上说前三个错误执行下列命令即可: modprobe bridge lsmod|grep bridge 但在执行第一个命令的时候又遇到新错误了~~~ FATAL: Module bridge not found. 或者: FATAL: Error running install command for bridge 咋办,又得去找资料,一开始用百度,找了好久,没一个解决的,后来果断用谷歌啊,接着,你懂的,找到了解决方案,但TM全是英文(也是我发这篇博文的原因),还好我有chrome~碰巧的是顺带找到了后面那七八个错误的解决方案,大快人心啊! 原来这些问题都是因为openvz模版的问题(谷歌翻译是这样说的),要进行修复操作, 修复也很简单,总共四个命令~ 修复modprobe的: 代码如下 rm -f /sbin/modprobe ln -s /bin/true /sbin/modprobe 修复sysctl的: 代码如下 rm -f /sbin/sysctl ln -s /bin/true /sbin/sysctl 执行完这四个命令后,你再试试sysctl -p,果断没报错了~
    callmeleifeng2016-11-29 11:58 回复
  27. 没有接收,无法连接怎么办
    Fantastz2016-11-24 10:46 回复
  28. 请教版主:myUserName可以连接服务器,也可以连接外网,为什么修改用户名和密码后外网就连接不上了,服务器倒是可以连接的。修改过sysctl文件,也无效。
    hjl2016-11-22 13:11 回复
  29. 添加新用户进去,除了myUserName可以用之外,其他的都连接不上去,提示:请重新输入您的用户名和密码,请问这是什么问题呢?
    像风一样的男子2016-11-20 16:42 回复
    • 可能是格式问题,修改完请重启,我测试添加账号是能链接使用的。
      Toyo2016-11-20 19:56 回复
      • 我直接把第一个的格式复制下来了,也是不行,添加新用户进去,需要重新下载证书下来使用吗?
        像风一样的男子2016-11-21 15:57 回复
        • 加群私聊:531201358,你文字描述我是看不清楚的。
          Toyo2016-11-21 18:15 回复
  30. 按照步骤已经安装完成,但是死活连接不上,证书也是按照步骤弄得
    haven2016-10-31 16:42 回复
  31. # 查看VPN状态 ipsec statsu 打错了呢·是status吧·虽然知道·但防智障
    黑风2016-10-18 12:11 回复
  32. 为毛IOS链接不上。。 IOS10里面有ipsec的设置
    loki2016-09-26 17:00 回复
  33. 我爱偷油
    Buffer2Disk2016-09-24 11:14 回复
  34. strongswan终于来了哈
    user2016-09-14 15:05 回复
    • 版主可以再做个strongswan manager的教程,管理起来更方便
      user2016-09-14 15:08 回复
  35. 请问搬瓦工的vps支持吗?
    smartychen2016-09-13 00:29 回复
    • 支持的。
      Toyo2016-09-13 12:15 回复
      • 好像不支持ipsec http://i2.buimg.com/1949/6600e90f1b95f00e.png
        smartychen2016-09-13 12:56 回复
        • 支持strongswan的ipsec
          user2016-09-14 15:06 回复
          • 可是我安好了,也可以连接上,但上不了网
            smartychen2016-09-15 15:10 回复
            • 还有安装时我选那个呀 http://i1.piimg.com/1949/0cff8c2fc78f92df.png
              smartychen2016-09-15 15:51 回复
              • 找到解决方法了 WIN10能连上StrongSwan的VPN服务器,却无法正常访问网页。 解决方法如下: 1、需要在“控制面板\网络和 Internet\网络连接”中,找到相应的VPN连接,打开其属性页。 2、在“网络”标签页中的“IPv4”的“属性”中,点“高级”,打开“高级TCP/IP设置”页面。 3、在“IP设置”标签页中,启用“在远程网络上使用默认网关”。
                smartychen2016-09-15 16:32 回复
                • 谢谢,方法有效 :mrgreen:
                  ysytcy2016-09-17 08:41 回复
  36. 独服选哪个VPS类型啊?
    Linda R Russell2016-09-11 09:59 回复
  37. 回帖占楼来了【滑稽 :wink:
    Yanagida Hirotaka2016-09-10 12:34 回复