热爱技术
专注分享

linux下搭建L2TP+IPSec服务端,组建异地虚拟局域网

首先说明一下,L2TP无法用于翻墙,请做一个遵纪守法的公民,知法,学法,懂法。

L2TP,其实也就是老生常谈的VPN技术。可能大家对于VPN不是特别了解,VPN在很多人的印象中只能用于翻墙,但是它实际名字叫做“虚拟专用网络”。(IPSec用于通信加密)

虚拟专用网络的功能是:在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用。VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问。VPN有多种分类方式,主要是按协议进行分类。VPN可通过服务器、硬件、软件等多种方式实现。

其实VPN技术主要是为了解决异地办公的问题。打个比方,你在家里,需要访问到公司网络里的某台机器,获取资料。传统的方法是在各级路由做地址映射,将需要访问的机器一层一层映射到公网中,然后通过公网访问。这样配置起来不仅麻烦,而且内部的机器暴露在了公网上,安全性也得不到保障。另外一个解决方法是拉专线,将各个地方的网络组成一个局域网。这样虽然安全性得到了保障,但是运营商拉专线的费用也是出奇的高,动辄几万几十万一年,根本不是个人用户能够承受的。

在这篇文章中,你只需要一台云服务器,搭建一个VPN网关,将需要访问的机器连接到服务器,就可以组建一个异地局域网了。云服务器相当于家里的路由器,连接到这台“路由器”的所有设备都会处于同一个局域网中,局域网里的机器可以互相访问,可以实现远程桌桌面,甚至可以一起玩局域网游戏。放张简单的拓扑图(从蒲公英官网偷的):

linux下搭建L2TP+IPSec服务端,组建异地虚拟局域网

当然网上也有专门做这种的,如上图的蒲公英路由器。也可以很方便的进行一键组网,原理也是一样的。但是这种商业化的东西,要么就给钱买路由器或者买带宽节点数,要么就做免费用户,1M的网速+最多连接三台设备,限制很大。

好了下面我们进入正题,准备一台云服务器(推荐使用国内的,延迟低,不会掉线),搭建属于我们自己的异地局域网。

 

一 使用一键脚本搭建L2TP+IPSec

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

运行后填入如下信息:

image.png

等待大概30秒就按照完成了。安装完成后如图:

image.png

可以使用如下命令管理连接账户:

l2tp -a : 增加一个连接账户

l2tp -d : 删除一个连接账户

l2tp -l : 展示现有的账户

l2tp -m : 修改账户的密码

如果你的云服务器有安全组,请放行:500,1701,4500这三个端口的UDP流量,否则会导致无法连接上。

image.png

 

二 windows如何连接

这里以windows10为例:

1 右键任务栏的小电脑图标,打开“网络和共享中心”

2 在左边选择“VPN” — 添加VPN连接,填入你的信息,如图:

image.png

3 填写完成后,找到这个连接,点“连接”就能连上了。

image.png

4 这时候获得了一个地址:10.10.10.3 我们ping一下VPN网关:10.10.10.1看下效果:

image.png

可能出现的问题:

连接上VPN之后会存在一个问题,你会发现电脑没法上外网了。这是因为默认网关被配置成了你的VPS,导致无法访问网络。解决方法很简单:

我们在刚才的“网络和共享中心”里找到 “状态–更改适配器设置”:

可以看到你的所有网卡,找到你的VPN虚拟网卡,image.png,右键–属性 依次选择“网络”–“internet协议版本4”–“高级”,去掉“在远程网络上使用默认网关”前面的钩,就可以上网了。如下图:

image.png

 

三 macOS如何连接

这里以OSX10.14为例:

1 打开“系统偏好设置”–网络,然后左下角按“+”增加一个网络连接。

image.png

2 接口选择“VPN”,VPN类型为L2TP/IPSec,名字自己填

image.png

3 这里填入我们的服务器地址和用户名:

image.png

4 点击下方的“鉴定设置”,填入我们的连接密码和PSK密钥(你在服务端自己定义的那个)

image.png

5 填写完成后点“连接”,即可连接成功

image.png

可能会出现的问题:

如果你使用ss的话,连上VPN之后会导致翻墙失败。不过不用慌,小场面,博主已经解决了这个问题。

选择你上网的那张网卡,点“高级”–“代理”–“自动代理配置”,把框框里的内容复制下来:

image.png

image.png

然后选择的你VPN,点“高级”–“代理”–“自动代理配置”,打勾,把复制出来的粘贴进去,就可以了。

 

四 验证是否可用

上面步骤完成后,windwos电脑和macbook处于不同地方(一个在家里一个在公司),现在通过云服务器组成了局域网,信息如下:

windows电脑:10.10.10.3

macbook:10.10.10.2

我在windows电脑上关闭了防火墙,用MacBook去ping windows电脑的局域网地址,反馈如下:

image.png

表示网络已经通了。接下来开启windows电脑的远程桌面访问,然后使用MacBook尝试远程桌面连接到家里的windows电脑:

image.png

成功实现了远程桌面!

当然脑洞还可以大一点,可以实现打印机共享,文件共享,局域网联机游戏,打IP电话等等,甚至可以搭配nginx,使用你的闲置电脑做网站负载均衡。只要是局域网能做的事情,通过这个VPN基本都可以做到

赞(11) 打赏
未经允许不得转载:小伟博客 » linux下搭建L2TP+IPSec服务端,组建异地虚拟局域网

评论 15

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    玩蛇皮

    wsp 7个月前 (01-10) 来自天朝的朋友 谷歌浏览器 Mac OS X 10_14_1 回复
  2. #2

    我搭建后,手机能用连上vpn,但是电脑却连接不上,我的win10和win7都连不上

    R 7个月前 (01-15) 来自天朝的朋友 谷歌浏览器 Windows 10 回复
    • misery

      @R 百度一下,windows连接不上的话,需要改下注册表

      misery 7个月前 (01-24) 来自天朝的朋友 谷歌浏览器 Mac OS X 10_14_0 回复
  3. #3

    你的“局域网联机游戏”能正常运行吗?安装VPN后,可以分到局域网IP,可以互相Ping通,但局域网游戏是就是找不到其它主机,我是用iOS版的文明6试的。
    网上搜了搜,找到一个类似的问题:https://zhidao.baidu.com/question/46154778,但没有解决办法。

    kx 6个月前 (02-07) 来自天朝的朋友 谷歌浏览器 Mac OS X 10_14_3 回复
    • misery

      @kx 局域网游戏确实会出问题,我也刚刚发现的

      misery 6个月前 (02-15) 来自天朝的朋友 谷歌浏览器 Mac OS X 10_14_0 回复
  4. #4

    好像不能共享文件 ,博主试了吗

    cufics 6个月前 (02-26) 来自天朝的朋友 谷歌浏览器 Windows 7 回复
  5. #5

    已经解决了,可以文件共享.想问下如何修改那3个端口

    cufics 6个月前 (02-26) 来自天朝的朋友 谷歌浏览器 Windows 7 回复
  6. #6

    楼主楼主 手机上的元气骑士(只能局域网联机)在远程联机时需要配合一个小程序–用于数据转发。那可不可以在服务器里做到一个ip向其他ip持续广播呢?(不是很懂,问的问题很模糊。。。)

    outman 5个月前 (03-17) 来自天朝的朋友 谷歌浏览器 Windows 10 回复
  7. #7

    你好博主大大, 请问可以取消IPSec验证吗?

    学习学习 2个月前 (06-13) 来自天朝的朋友 QQ浏览器 Windows 10 回复
  8. #8

    你好 请问一下 可以取消 IPSec 的验证吗?

    学习学习 2个月前 (07-01) 来自天朝的朋友 QQ浏览器 Windows 10 回复

小伟博客 热爱技术 专注分享

网站发展历程WKM萌妹博客

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏