网一vpn(配置子网VPN连接,将两个远程子网连在一起)

  本文的目标是配置两个局域网之间的 VPN 连接,建立 VPN 连接之后,两个局域网好像在同一个局域网内一样。经过下面的配置之后,双方局域网内的全部设备(包括手机)都可以直接使用远程服务器提供的服务。

  下面是我实施本文的配置所使用的网络:

  局域网一:我公司的内部局域网,使用 ADSL 拨号上网,动态 IP 地址。

  局域网二:腾讯云服务器,固定IP地址。现在只有一台机器,但我们可以从不同的地点使用域名建立 VPN 连接到云服务器,就可以直接进入公司内部网,实现远程办公,不需要知道公司现在的 IP 地址。

  操作系统:FreeBSD13.1-Release。

  两台机都启用路由功能,在 /etc/rc.conf 中加上一行:

gateway_enable="YES"

  下面提供两种方法建立局域网 VPN 连接。

方法一:使用系统自带的命令建立VPN连接

  这个可能是最简单的方法,只要知道两边的 IP 地址,能相互连接,两边分别输入四行命令就建立了连接。还可以写成脚本定期执行。

简单设置

  因为我公司采用拨号上网,是动态 IP 地址,最久每 48 小时变一次。为方便命令执行,我将公司路由器解释为 myself,在 /etc/hosts 中加上这样一行:

13.14.15.6  myself   #我的动态IP地址。

  同时在腾讯云服务器上将这个 IP 地址解释为 corpgw,在 /etc/hosts 中加上这样一行:

13.14.15.6  corpgw   #我的动态IP地址。

  公司的路由器定时将 IP 地址发送给腾讯云服务器,服务器将 IP 地址写进文件中。可以通过网页程序或者 FTP 传送IP地址。

  我的 FTP 传送脚本 ftpsendip.sh:

#!/bin/sh
ifconfig tun0 | grep inet|awk 'END{print $2}'>hosts
ftp -i -in <ftp.x

  ftp.x 里包含FTP命令:

open <FTP服务器>
user 用户名 密码
bin
mput hosts
bye

  还可以这样:

ln -s /ftp上传的目录/hosts /etc/hosts

(加上 127.0.0.1 的解释可能会更好。)

建立连接

  在公司路由器,输入以下命令:

# ifconfig gif0 create
# ifconfig gif0 10.10.10.99 172.15.0.19  
# ifconfig gif0 tunnel myself 159.75.*.*
# route add 172.15.0.0 172.15.0.19 255.255.255.0

  其中 10.10.10.99 是公司路由器的内部 IP 地址, 172.15.0.* 是云服务器的内部 IP 地址。* 号隐藏了具体数字。

  在腾讯云服务器,输入下面的命令:

# ifconfig gif0 create
# ifconfig gif0 172.15.0.19 10.10.10.99
# ifconfig gif0 tunnel 172.15.0.19 corpgw
# route add 10.10.10.0 10.10.10.99 255.255.255.0

  在腾讯云服务器,引用本机 IP 地址时,不能使用公网 IP 地址,要使用分配的内网 IP 地址,登录后用 ifconfig 命令就能看到。

  经过这么简单的操作,两边的机器可以 ping 通了。

网一vpn(配置子网VPN连接,将两个远程子网连在一起)

  这种方法可以更简便一点,把上面的 corpgw 和 myself 直接换成 IP 地址就可以了。把前面的命令写成可执行脚本 gif.sh:

# ifconfig gif0 destroy
# ifconfig gif0 create
# ifconfig gif0 172.15.0.19 10.10.10.99
# ifconfig gif0 tunnel 172.15.0.19 corpgw
# route add 10.10.10.0 10.10.10.99 255.255.255.0

  定期执行这个脚本就能保持连接。

方法二:使用 mpd5 建立 VPN 连接

  使用 mpd5 建立连接,让公司的路由器连接腾讯云服务器,这样不必知道我们的动态 IP 地址是什么,不必像上一种连接那样要传送和设置 IP 地址。

  首先要安装 mpd5:

# pkg install mpd5

  公司路由器的配置文件,/usr/local/etc/mpd5/mpd.conf:

# 公司路由器
startup:
    set user root abcabc admin
   set user fool bar1
   set web self 0.0.0.0 5006
   set web open
default:
    load vpn_lan2lan
    load pptp_server
pptp_server:
	set ippool add pool1 10.10.10.160 10.10.10.169
	create bundle template B
	set iface enable proxy-arp
	set iface idle 1800
	set iface enable tcpmssfix
	set ipcp yes vjcomp
	set ipcp ranges 10.10.10.101 ippool pool1
	set bundle enable compression
	set ccp yes mppc
	set mppc yes e40
	set mppc yes e128
	set mppc yes stateless
	create link template L pptp
	set link action bundle B
	set link enable multilink
	set link yes acfcomp protocomp
	set link no pap chap eap
	set link enable chap
	set link keep-alive 10 60
	set link mtu 1460
        set pptp self 0.0.0.0
        set link enable incoming

vpn_lan2lan:
    create bundle static b_router
    set iface route 172.15.0.19/24
    set bundle enable compression
    set bundle enable crypt-reqd
    set ccp yes mppc
    set mppc accept compress
    set mppc yes e40 e56 e128
    set mppc yes stateless
    create link static l_router pptp
    set link action bundle b_router
    set link accept chap
    set auth authname "router"
    set auth password "password"
    set link keep-alive 10 60
    set link max-redial 0
    set link disable incoming
    set pptp peer 59.75.*.*
    open

vpn_common:
    set bundle enable compression
    set ccp yes mppc
    set mppc yes e128
    set bundle enable crypt-reqd
    set mppc yes stateless

pptp_links:
    set ippool add pool_pptp 192.168.2.101 192.168.2.250
    create bundle template b_pptp
    set iface enable proxy-arp
    set iface idle 3600
    set iface enable tcpmssfix
    set ipcp enable vjcomp
    set ipcp ranges 10.0.2.1/32 ippool pool_pptp
    load vpn_common
    create link template l_pptp pptp
    set link action bundle b_pptp
    load links_common

links_common:
    set link enable multilink
    set link enable acfcomp protocomp
    set link disable pap chap eap
    set link enable chap
    set link keep-alive 10 60
    set link mtu 1396
    set link mru 1396
    set link enable incoming

腾讯云服务器端的配置文件,/usr/local/etc/mpd5/mpd.conf:

# server
startup:
     set user root  abcabc admin
     set user fool bar1
        set web self 0.0.0.0 5006
        set web open
default:
    load vpn_server
    load pptp_links
    load pptp_server
pptp_server:
	set ippool add pool1 172.15.0.1 172.15.0.5
	create bundle template B
	set iface enable proxy-arp
	set iface idle 1800
	set iface enable tcpmssfix
	set ipcp yes vjcomp
	set ipcp ranges 172.15.0.10 ippool pool1
	set bundle enable compression
	set ccp yes mppc
	set mppc yes e40
	set mppc yes e128
	set mppc yes stateless
	create link template L pptp
	set link action bundle B
	set link enable multilink
	set link yes acfcomp protocomp
	set link no pap chap eap
	set link enable chap
	set link keep-alive 10 60
	set link mtu 1460
  set pptp self 0.0.0.0
  set link enable incoming
  
vpn_server:
    create bundle static b_server
    set ipcp ranges 172.15.0.19/32 10.10.10.99/32
    set iface route 10.10.10.0/24
    load vpn_common

vpn_common:
    set bundle enable compression
    set ccp yes mppc
    set mppc yes e128
    set bundle enable crypt-reqd
    set mppc yes stateless

pptp_links:
    set ippool add pool_pptp 172.15.0.1 172.15.0.10
    create bundle template b_pptp
    set bundle enable compression
    set bundle enable crypt-reqd
    set iface enable proxy-arp
    set iface idle 3600
    set iface enable tcpmssfix
    set ipcp enable vjcomp
    set ipcp ranges 172.15.0.10/32 ippool pool_pptp
    load vpn_common
    create link template l_pptp pptp
    set link action bundle b_server router
    set link action bundle b_pptp
    load links_common

links_common:
    set link enable multilink
    set link enable acfcomp protocomp
    set link disable pap chap eap
    set link enable chap
    set link keep-alive 10 60
    set link mtu 1396
    set link mru 1396
    set link enable incoming

在云服务器端的 /usr/local/etc/mpd5/mpd.secret 文件中加上一行(就是用户名和密码):

router           "password"

两边启动 mpd5:

# service mpd5 start

到这里,两连接都可以连通了。下面是 mpd5 的截图,http://59.75.*.*:5006。

网一vpn(配置子网VPN连接,将两个远程子网连在一起)

上面的 mpd5 配置文件同样适用于我前面设置 VPN 服务器的情况。

【本文最初的配置不知道是哪年从哪抄来的,并根据自己的需要和心情作了更改,感谢各位作者。】

(0)

相关推荐