文章目录
序言
在 Windows 上使用 Open*** + Frp 技术组建本地局域网,需准备好相应的服务器,一台用于搭建 Open*** Server 端、Frp Client 端的 Windows 主机;以及一台云服务器(提供公网 IP),用于搭建 Frp Server 端。Frp 可将本地 Open*** Server 监听的 1194 端口放到公网服务器上,用于外网用户进行拨号。
\ | Windows 服务器(172.16.2.66) | 云服务器(公网 IP) |
---|---|---|
Frp Server | √ | |
Frp Client | √ | |
Open*** Server | √ |
一、安装 Frp
1、Frps 的安装参照上一篇,本文也是基于上一篇部分环境来进行。
2、Frpc 下载地址:
https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_windows_amd64.zip
3、解压 frp_0.37.0_windows_amd64.zip,例如解压到 D:\frpc
4、编辑 D:\frpc\frpc.ini 文件如下
[common]
server_addr = 公网IP
server_port = 7000
token = abc123
# 设置日志信息
log_file = ./logs/frpc.log
log_level = info
log_max_days = 3
[open***1]
type = tcp
local_ip = 172.16.2.66
local_port = 1194
remote_port = 9413
5、将 Frpc 制作成 Windows 服务
1、下载 WinSW.NET4.exe 保存到 D:\frpc 目录下
下载地址: https://github.com/winsw/winsw/releases/download/v2.11.0/WinSW.NET4.exe
2、改名 WinSW.NET4.exe 为 frpc-server.exe
3、新建文件 frpc-server.xml(注意:因为description 中有汉字,所以该文件保存为 UTF-8 格式),内容如下
<service>
<id>frpc</id>
<name>frpc</name>
<description>使用 frp 将本地端口映射到公网端口</description>
<executable>frpc.exe</executable>
<arguments>-c frpc.ini</arguments>
<onfailure action="restart" delay="60 sec"/>
<onfailure action="restart" delay="120 sec"/>
<logmode>append</logmode>
<logpath>logs</logpath>
</service>
4、管理员权限打开 CMD,cd 到 D:\frpc,执行 frpc-server.exe install
5、在 CMD 中启动/停止 frpc 命令
net start frpc
net stop frpc
二、安装 Open*** Server
1. 下载安装 Open***
1、下载 Open***-2.5.4-I602-amd64.msi 安装包
下载地址:
https://swupdate.open***.org/community/releases/Open***-2.5.4-I602-amd64.msi
2、安装 Open***
选择 Customize 后进入下图,所有 X 的全都选中,然后一直默认下一步(本文安装路径为 D:\open***)
2.配置 easy-rsa-3 及 Open***
2.1.生成证书
1、管理员权限打开 CMD,cd 到 D:\open***\easy-rsa
2、依次执行以下命令
EasyRSA-Start.bat
./easyrsa init-pki # 创建 pki 目录
set KEY_COUNTRY=CN
set KEY_PROVINCE=PROVINCE
set KEY_CITY=CITY
set KEY_ORG=ORG
set KEY_EMAIL=mail@host.domain
set DH_KEY_SIZE=2048 # 设置 DH 大小
# 创建 ca 证书,不使用密码,默认回车(或者输入yes)
./easyrsa build-ca nopass
# 创建 server 端证书
./easyrsa build-server-full server nopass
# 创建 client 端证书
./easyrsa build-client-full client nopass
# 生成 dh 验证文件
./easyrsa gen-dh
2.2.生成 ta.key
1、管理员权限打开 CMD,cd 到 D:\open***\bin
2、执行以下命令,在同目录层级下会生成 ta.key
open*** --genkey tls-auth ta.key
2.3.整理证书
certificate | location |
---|---|
ca.crt | D:\open***\easy-rsa\pki |
ta.key | D:\open***\bin |
dh.pem | D:\open***\easy-rsa\pki |
Client/Server key | D:\open***\easy-rsa\pki\private |
Client/Server crt | D:\open***\easy-rsa\pki\issued |
1. server 端所需证书
ca.crt
dh.pem
ta.key
server.crt
server.key
将证书放到 D:\open***\config\certs 下
2. client 端所需证书
ca.crt
ta.key
client.crt
client.key
2.4.编辑 server 端配置文件
编辑 D:\open***\config\server.o*** 文件如下
port 1194
proto tcp
dev tun
ca ./certs/ca.crt
cert ./certs/server.crt
key ./certs/server.key # This file should be kept secret
dh ./certs/dh.pem
server 10.10.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 172.16.2.0 255.255.255.0"
;client-config-dir ccd
push "dhcp-option DNS 223.5.5.5"
push "dhcp-option DNS 223.6.6.6"
client-to-client
keepalive 10 120
tls-auth ./certs/ta.key 0 # This file is secret
cipher AES-256-GCM
;comp-lzo
compress lzo
max-clients 100
persist-key
persist-tun
status ../log/open***-status.log
log ../log/open***.log
verb 3
# crl-verify 为注销 client 端证书时所需要,后面再详解,当前可不加
crl-verify ../easy-rsa/pki/crl.pem
2.5.编辑 client 端配置文件
编辑 client.o*** 内容如下
client
dev tun
proto tcp
remote 公网IP 9413
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-GCM
;comp-lzo
compress lzo
auth-nocache
verb 4
3.配置路由转发及防火墙
1、修改
注册表编辑器
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters
下的
IPEnableRouter
为
1
,修改后需重启电脑2、启动
Routing and Remote Access
服务3、在
网络和共享中心
的
更改适配器设置
中修改
本地连接
的属性,在
共享
中勾选
允许其他网络用户通过此计算机的 Internet 连接来连接(N)
,同时
家庭网络连接
中选择Open***的网卡4、在防火墙的入站规则中开放 1194 TCP 端口
4.启动 Open*** Server
使用管理员权限运行桌面的 Open*** GUI,然后连接即可,Open*** Server 即为启动成功
三、连接测试
1、在外网的主机中安装 Open***,全程默认安装即可
2、将上面生成的 client 端所需的证书以及 client.o*** 一起保存到 Open*** 安装目录下 config/client
3、做完上述内容即可连接测试
四、注销用户
1、管理员权限打开 CMD,cd 到 D:\open***\easy-rsa
2、依次执行以下命令
EasyRSA-Start.bat
#./easyrsa revoke 证书名
./easyrsa revoke client # 本文为 client
# gen-crl 会生成吊销证书的名单保存在 D:\open***\easy-rsa\pki\crl.pem 文件中
./easyrsa gen-crl
3、最后在 server 端配置文件中加上
crl-verify ../easy-rsa/pki/crl.pem
即可注销该用户