在 Ubuntu 24.04 VPS部署 SoftEtherVPN 服务器(二)

我们在上一节介绍了SoftEther的安装,这一节我们介绍它的配置,配置完后,就可以工作啦。接下来我们配置DNS服务器。配置的目的是,拨号连接上的客户端通过这台SoftEtherVPN服务器来访问互连网,当然你也可以设置成访问专网时访问这台SoftEtherVPN服务器,其他流量通过工作站本地互联网访问。如果是后一种则无需要此配置DNS服务器。

一:在SoftEtherVPN服务器安装DNS服务

上一节我们将 VPN 服务器指定为客户端的 DNS 服务器,因此我们需要在 VPN 服务器上运行 DNS 解析器。我们可以安装 bind9 DNS 服务器。

sudo apt install -y bind9

安装后,BIND 将自动启动。您可以通过以下方式检查其状态:

systemctl status named

使用以下命令启动它:

sudo systemctl start named

编辑 BIND DNS 服务器的配置文件。

sudo vim /etc/bind/named.conf.options

#添加以下行以允许 VPN 客户端发送递归 DNS 查询。
allow-recursion { 127.0.0.1; 192.168.30.0/24; };

然后编辑named文件

sudo vim /etc/default/named

添加到 以确保 BIND 可以查询根 DNS 服务器。

OPTIONS="-u bind -4"

默认情况下,BIND 启用 DNSSEC,我们可以使用以下命令重建托管密钥数据库。

sudo rndc managed-keys destroy
sudo rndc reconfig

重新启动 BIND9 以使更改生效。

sudo systemctl restart named

打开 VPN 客户端连接端口 53。

二:Cerbot获取信任TLS证书

使用 Let's Encrypt 证书的优势在于它是免费的、更易于设置并且受到 VPN 客户端软件的信任。

从默认 Ubuntu 存储库安装 Let's Encrypt 客户端 (certbot)

sudo apt install -y certbot

要检查版本号,请运行

certbot --version

输出:

certbot 2.9.0

如果您的 Ubuntu 24.04 VPS 上没有运行 Web 服务器,并且您希望 SoftEther VPN 服务器使用端口 443,那么您可以使用独立插件从 Let's Encrypt 获取 TLS 证书。

sudo certbot certonly --standalone --preferred-challenges http --key-type rsa --agree-tos --email you@example.com -d vpn.example.com

参数解释:

certonly:获取证书但不安装它。

--standalone:使用独立插件获取证书

--preferred-challenges http:执行 http-01 质询以验证我们的域,该域将使用端口 80。

--key-type rsa:Let's Encrypt 默认使用 ECDSA 密钥,但 SoftEther 目前支持 RSA 密钥。

--agree-tos:同意 Let's Encrypt 服务条款。

--email:电子邮件地址用于帐户注册和恢复。

-d:指定域名。

成功后的信息如下:

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/vpn.example.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/vpn.example.com/privkey.pem
This certificate expires on 2024-09-26.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le

执行此指令前,请确保域名已正确解析,目前国内的VPS有报错,尚未查明原因,但国外主机都可以一次性成功。

三:Nginx浏览器设置

使用的是 Nginx

sudo vim /etc/nginx/conf.d/vpn.example.com.conf

编辑内容如下:

server {
      listen 80;
      server_name vpn.example.com;

      root /var/www/html/;

      location ~ /.well-known/acme-challenge {
         allow all;
      }
}

创建 Web 根目录

sudo mkdir -p /var/www/html

#设置访问权限
sudo chown -R www-data:www-data /var/www/html

重新加载 Nginx 以使更改生效

sudo systemctl reload nginx

创建并启用虚拟主机后,运行以下命令以使用 webroot 插件获取 Let's Encrypt 证书。

sudo certbot certonly --webroot --agree-tos --key-type rsa --email you@exmaple.com -d vpn.example.com -w /var/www/html

提示选项,因为前面使用过,所以这里选了2,进行Renew。

四:登录控制台

以 root 身份登录 VPN 管理控制台。

sudo /opt/softether/vpncmd 127.0.0.1:5555

选择管理 VPN 服务器。您需要输入管理员密码

然后执行以下命令,设置 TLS 证书和 VPN 服务器的私钥。

然后执行以下命令,设置 TLS 证书和 VPN 服务器的私钥。

VPN Server>ServerCertSet

输入证书的以下路径。

此信息为前面申请证书时生成证书的路径。

最后,退出管理

exit

五:Win11拨号设置

参数解读:

VPN 提供商:Windows (Built-in)

连接名称:SoftEther

服务器名称或地址:(请不要添加https://前缀vpn.example.com

VPN 类型:Secure Socket Tunneling Protocol (SSTP)

登录信息类型:username and password

用户名:您的 SoftEther VPN 用户名

Password:您的 SoftEther VPN 密码

六:Ubuntu Linux 安装 SSTP VPN 客户端

1、安装客户端

sudo apt install sstp-client network-manager-sstp

2、建立VPN连接

sudo sstpc --cert-warn --save-server-route --user vpn_username --password vpn_password vpn.example.com:443 usepeerdns require-mschap-v2 noauth noipdefault nobsdcomp nodeflate

3、设置开机启动

sudo vim /etc/systemd/system/softether-vpnclient.service

内容如下:

[Unit]
  Description=SoftEther VPN Client
  After=network-online.target systemd-resolved.service
  Wants=network-online.target

[Service]
  Type=simple
  ExecStart=/usr/sbin/sstpc --cert-warn --save-server-route --user vpn_username --password vpn_password vpn.example.com:443 usepeerdns require-mschap-v2 noauth noipdefault nobsdcomp nodeflate
  ExecStartPost=/bin/bash -c 'sleep 7; route add default ppp0'
  ExecStop=pkill sstpc
  Restart=Always

[Install]
  WantedBy=multi-user.target

其他操作:

#使生效
sudo systemctl enable softether-vpnclient.service

#要停止此 Systemd 服务,请运行
sudo systemctl stop softether-vpnclient.service

非常好用的一个软件,有兴趣的小伙伴可以试试吧。

相关推荐
PyAIGCMaster18 分钟前
ubuntu装P104驱动
linux·运维·ubuntu
奈何不吃鱼18 分钟前
【Linux】ubuntu依赖安装的各种问题汇总
linux·运维·服务器
爱码小白24 分钟前
网络编程(王铭东老师)笔记
服务器·网络·笔记
zzzhpzhpzzz32 分钟前
Ubuntu如何查看硬件型号
linux·运维·ubuntu
蜜獾云34 分钟前
linux firewalld 命令详解
linux·运维·服务器·网络·windows·网络安全·firewalld
陌北v136 分钟前
Docker Compose 配置指南
运维·docker·容器·docker-compose
只会copy的搬运工1 小时前
Jenkins 持续集成部署——Jenkins实战与运维(1)
运维·ci/cd·jenkins
娶不到胡一菲的汪大东1 小时前
Ubuntu概述
linux·运维·ubuntu
阿里嘎多学长1 小时前
docker怎么部署高斯数据库
运维·数据库·docker·容器
Yuan_o_1 小时前
Linux 基本使用和程序部署
java·linux·运维·服务器·数据库·后端