Pritunl对于VPN服务器很方便


使用免费Wi-Fi等时,可以安全地连接到VPN。该机制的效果是,通过创建诸如对通信进行加密的隧道并通过它的通信来阻止通信内容的拦截。换句话说,存在使用免费Wi-Fi登录某些服务时会读取ID和密码的风险,但是您可以避免这种情况。

另外,如果您使用VPN,它将通过VPN服务器,因此IP地址将更改为该服务器的IP地址。 (但是,这可能取决于所使用的工具和环境变量)。

但是,VPN非常麻烦,最好的办法是将其安装在服务中并使其可用,但要花钱。

这次,我将尝试使用pritunl在本地网络上设置VPN服务器,可以从Web UI进行设置。

https://github.com/Fridus/docker-pritunl

1
2
$ mkdir mongo
$ sudo docker-compose up -d

docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
network:
  image: busybox
  ports:
    - "9700:443"
    - "1194:1194/udp"
  restart: always
  tty: true
mongo:
  image: mongo
  volumes:
    - ./mongo:/data/db
  restart: always
  net: container:network
pritunl:
  image: fridus/pritunl
  privileged: true
  environment:
    - MONGO_URI=mongodb://127.0.0.1:27017/pritunl
  restart: always
  net: container:network

使用

或jippi / pritunl。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash

datadir="$(dirname $(readlink -f "$0"))/data"
echo "datadir=$datadir"

mkdir -p $datadir/{mongodb,pritunl}
touch $datadir/pritunl.conf

sudo docker run \
    --name=pritunl \
    --detach \
    --cap-add NET_ADMIN \
    --network=bridge \
    --restart=always \
    -v $datadir/mongodb:/var/lib/mongodb \
    -v $datadir/pritunl:/var/lib/pritunl \
    -v $datadir/pritunl.conf:/etc/pritunl.conf \
    -p 1194:1194/udp \
    -p xxxxxx:xxxxx/tcp \
    jippi/pritunl

接下来,从Web UI配置设置。

1
2
3
4
5
6
7
8
9
10
11
$ ifconfig
192.168.1.4

$ chromium https://192.168.1.4:9700
$ chromium https://localhost:9700
    user,password:pritunl

# IP : 192.168.1.4
# User -> Add Organization, Add User
# Server -> Add Server(Port 1194/udp), Attach Organization, Start Server
# User -> download profile

您所要做的就是安装VPN Client并导入DL配置文件。客户端可以是Tunnelblick或pritunl,但取决于操作系统,可以有多种类型。

从WAN访问时,使用路由器进行端口转发等。例如,假设您路由器的全局IP为1.1.1.1。因此,这是一种将对1.1.1.1的特定端口的访问转发到本地网络的特定端口的设置。 (实际上,1.1.1.1是cloudflare的dns)

1
2
# global ipを調べる
$ curl -sL ipinfo.io

但是,下载的配置文件(xxx.ovpn)指定了本地IP,因此您必须重写配置文件。

1
2
3
4
$ aunpack default.tar
$ vim vpn_default.ovpn
- remote 192.168.1.4 1194 udp
+ remote 1.1.1.1 xxxxxx udp

对于

xxxxxx,最好指定一个难以识别的数字。保存设置以转发到docker指定的端口,此处为1194。这将是诸如路由器端口转发(端口转发)之类的项目。换句话说,对于从WAN端访问特定端口,这是转发到LAN端上特定端口的过程。

1.1.1.1:xxxxx/udp -> 192.168.1.4:1194/udp

例如,通过执行此操作,您可以使用iOS OpenVPN应用程序打开vpn_default.ovpn,并从运营商线路(WAN)连接到VPN Server。请注意,这是一个相对危险的设置,因为它会打开路由器端口。但是,我认为这是从全局IP访问本地网络的最安全方法。通常,即使从WAN端SSH到本地网络,许多人也使用此方法。

如果连接失败,请在pritunl设置中同时指定路由器的全局IP,然后重新启动服务器。否则,虚拟网络将无法启动,并且在您与本地IP连接时,虚拟网络将启动,因此您可以从全局网络访问它,但是如果断开连接,则将无法从全局网络连接。我会结束的。

在本地网络上启动VPN服务器的好处

我之前提到过,当从WAN进行SSH时,通常使用路由器端口转发(端口转发)。

但是,如果本地网络上有VPN服务器,则不是这种情况。

如果从WAN传递自己的VPN服务器,则不仅将获得家庭路由器的全局IP,还将获得本地IP。您可以像往常一样使用它来访问本地网络上的每个服务器。换句话说,以下SSH将通过。

?/ .ssh /配置

1
2
3
4
5
Host usb
    HostName 192.168.1.33
    Port 22
    IdentityFile ~/.ssh/usb
    User syui

通常,从WAN端到SSH,其内容如下。您必须将家庭路由器IP(全局IP)更改为HostName,甚至还要设置端口转发。

?/ .ssh /配置

1
2
3
4
5
Host usb
    HostName 1.1.1.1 # Global IP
    Port 22222 # ポート転送のポート番号(22222 -> 192.168.1.33:22)
    IdentityFile ~/.ssh/usb
    User syui

如果使用的是DDNS,则不是这种情况。 DDNS例如将路由器(家庭)的全局IP(可变数字)转换为特定的域名(固定字符串)。因此,您要做的就是在HostName中写入DDNS。 VPN配置文件也是如此。

?/ .ssh /配置

1
2
3
4
5
Host usb
    HostName github.com.ddns.syui # DDNS
    Port 22222 # ポート転送のポート番号(22222 -> 192.168.1.33:22)
    IdentityFile ~/.ssh/usb
    User syui

xxx.opvn

1
2
- remote 1.1.1.1 1194 udp
+ remote github.com.ddns.syui 22222 udp

但是,DDNS服务通常是收费的,因此我经常使用全局IP。对于全局IP波动,请准备专用通道等,并执行cron告知是否存在IP波动。

DDNS

例如,DDNS具有以下内容。但是,我们尚未调查安全性。在ddns.pboehm.de中,如果10天内未更新名称,该名称将被自动删除。

https://github.com/pboehm/ddns

https://ddns.pboehm.de/

1
2
# example
myowntest.d.pboehm.de

ddns是围绕小型Web服务构建的,因此您只需通过curl定期调用URL即可更新IP地址。未更新10天未更新的主机将自动删除。自己的实例。