Open*** + Frp 组建本地局域网

本文档详细介绍了如何通过Open***和Frp组合,建立从本地局域网到公网的连接。首先,详述了Open***服务端的安装配置,包括证书生成、配置文件编辑和iptables设置。接着,讲解了Frp在云服务器和本地服务器上的部署,实现本地1194端口通过公网访问。最后,进行了连接测试,并对可能出现的问题进行了总结。
摘要由CSDN通过智能技术生成

序言

使用 Open*** + Frp 技术组建本地局域网,需准备好本地服务器环境,一台用于搭建 Open*** 服务端、Frp 客户端;以及一台云服务器(提供公网 IP),用于搭建 Frp 服务端。Frp 可将本地 Open*** Server 监听的 1194 端口放到公网服务器上,用于外网用户进行拨号。

\本地服务器(192.168.2.157)云服务器(公网 IP)
Frp Server
Frp Client
Open*** Server

一、安装 Open***

1.更新 yum 源

更新 Base 源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

更新 epel 源

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2.安装软件包

yum -y install open*** easy-rsa

3.配置 easy-rsa-3 及 Open***

3.1.生成 server 端证书

# 依次执行以下命令
cp -r /usr/share/easy-rsa/ /etc/open***/easy-rsa
cd /etc/open***/easy-rsa/
\rm 3 3.0
cd 3.0.8/
cp /usr/share/doc/easy-rsa-3.0.8/vars.example ./vars

# 创建 pki 目录以及 ca 证书
./easyrsa init-pki    # 创建 pki 目录
./easyrsa build-ca nopass # 创建 ca 证书,不使用密码,默认回车

# 创建 server 端证书
./easyrsa gen-req server nopass # 默认回车

# 签名 server 端证书
./easyrsa sign server server # 输入 yes

# 生成 dh 验证文件
./easyrsa gen-dh

3.2.生成 client 端证书

# 依次执行以下命令
cp -r /usr/share/easy-rsa/ /etc/open***/client/easy-rsa
cd /etc/open***/client/easy-rsa/
\rm 3 3.0 
cd 3.0.8/
cp /usr/share/doc/easy-rsa-3.0.8/vars.example ./vars

# 创建 pki 目录
./easyrsa init-pki

# 创建 client 端证书
./easyrsa gen-req client nopass # 默认回车

# 签名 client 端证书
cd /etc/open***/easy-rsa/3.0.8/

./easyrsa import-req /etc/open***/client/easy-rsa/3.0.8/pki/reqs/client.req client

./easyrsa sign client client # 输入 yes

3.3.整理证书

# server 端所需证书

mkdir /etc/open***/certs
cd /etc/open***/certs

# 生成 ta.key (拒绝服务攻击证书)
open*** --genkey --secret ta.key

cp /etc/open***/easy-rsa/3.0.8/pki/dh.pem ./
cp /etc/open***/easy-rsa/3.0.8/pki/ca.crt ./
cp /etc/open***/easy-rsa/3.0.8/pki/issued/server.crt ./
cp /etc/open***/easy-rsa/3.0.8/pki/private/server.key ./

[root@node1 certs]# ll
总用量 24
-rw-------. 1 root root 1172 726 15:08 ca.crt
-rw-------. 1 root root  424 726 15:08 dh.pem
-rw-------. 1 root root 4552 726 15:08 server.crt
-rw-------. 1 root root 1704 726 15:09 server.key
-rw-------. 1 root root  636 726 14:59 ta.key

# client 端所需证书
mkdir /etc/open***/client/client
cd /etc/open***/client/client/
cp /etc/open***/certs/ta.key ./
cp /etc/open***/easy-rsa/3.0.8/pki/ca.crt ./
cp /etc/open***/easy-rsa/3.0.8/pki/issued/client.crt ./
cp /etc/open***/client/easy-rsa/3.0.8/pki/private/client.key ./

[root@node1 client]# ll
总用量 20
-rw-------. 1 root root 1172 726 15:09 ca.crt
-rw-------. 1 root root 4432 726 15:10 client.crt
-rw-------. 1 root root 1704 726 15:10 client.key
-rw-------. 1 root root  636 726 15:11 ta.key

3.4.编辑 server 端配置文件

vim /etc/open***/server.conf

port 1194
proto tcp
dev tun

ca /etc/open***/certs/ca.crt
cert /etc/open***/certs/server.crt
key /etc/open***/certs/server.key
dh /etc/open***/certs/dh.pem

server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt

push "route 10.8.0.0 255.255.255.0"
push "route 192.168.2.0 255.255.255.0"
push "dhcp-option DNS 223.5.5.5"
push "dhcp-option DNS 223.6.6.6"

client-to-client
keepalive 10 120
tls-auth /etc/open***/certs/ta.key 0

cipher AES-256-GCM
comp-lzo
max-clients 100
persist-key
persist-tun

status open***-status.log
log         open***.log
verb 3

3.5.编辑 client 端配置文件

vim /etc/open***/client.ovpn

client
dev tun
proto tcp

remote 公网IP 9411
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

auth-nocache

verb 4

4.配置路由转发 及 iptables

# 执行以下命令

# 启用路由转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

sysctl -p # 出现下面一行说明设置成功
net.ipv4.ip_forward = 1

# 配置 iptables
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE

iptables -t nat -L # 出现以下结果说明成功
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  10.8.0.0/24          anywhere

5.启动 Open*** 服务

# 启动服务
systemctl start open***@server

# 查看状态
systemctl status open***@server

到这里已经结束了 Open*** Server 端的搭建,接下来需要配置的是 Frp 以及 Open*** Client 端进行连接。

二、安装 Frp

下载地址 https://github.com/fatedier/frp/releases

1.云服务器上部署

# 解压安装包
tar -zxvf frp_0.37.0_linux_amd64.tar.gz

cd /usr/software/frp_0.37.0_linux_amd64/

# 编辑 frps.ini 文件
vim frps.ini

[common]
bind_port = 7000
token = abc123

# frp管理后台端口
dashboard_port = 1402
# frp管理后台用户名和密码
dashboard_user = admin
dashboard_pwd = admin123
enable_prometheus = true

# frp日志配置
log_file = /usr/software/frp_0.37.0_linux_amd64/frps.log
log_level = info
log_max_days = 3

# 保存退出
:wq

# 控制台启动 frp
./frps -c ./frps.ini

# 后台启动
nohup ./frps -c frps.ini &

# 配置服务开机自启动
cp frps /usr/bin/
mkdir /etc/frp
cp frps.ini /etc/frp/
cp systemd/frps.service /usr/lib/systemd/system/

systemctl enable frps # 设置开机自启动

systemctl start frps # 启动 frps 即 frp server

systemctl status frps # 查看 frps 状态

2.本地服务器上部署

# 解压安装包
tar -zxvf frp_0.37.0_linux_amd64.tar.gz

cd /usr/software/frp_0.37.0_linux_amd64/

# 编辑 frpc.ini 文件
vim frpc.ini

[common]
server_addr = 公网IP
server_port = 7000
token = abc123

[vpn]
type = tcp
local_ip = 192.168.2.157
local_port = 1194
remote_port = 9411 # 将本地 1194 端口映射到 公网 9411 端口

# 保存退出
:wq

# 控制台启动 frp
./frpc -c ./frpc.ini

# 后台启动
nohup ./frpc -c frpc.ini &

# 配置服务开机自启动
cp frpc /usr/bin/
mkdir /etc/frp
cp frpc.ini /etc/frp/
cp systemd/frpc.service /usr/lib/systemd/system/

systemctl enable frpc # 设置开机自启动

systemctl start frpc # 启动 frpc 即 frp client

systemctl status frpc # 查看 frpc 状态

三、连接测试

  • 依次检查 Open*** Server 端、Frps、Frpc 是否正常启动
  • 将上面生成的 Open*** Client 端的证书以及配置文件(client.ovpn),分发到模拟的外网用户中(证书与配置文件需在同一目录下)
  • 使用 Open*** Client 进行连接

下载地址 https://openv***.net/community-downloads/

四、问题总结

  1. Write to TUN/TAP:Unknown error(code=122)

因为在 Open*** Server 配置文件中使用了 comp-lzo 压缩,而 Client 端配置文件中没有 开启。

  1. WARNING: this configuration may cache passwords in memory – use the auth-nocache option to prevent this

Open*** Client 端配置文件加上 auth-nocache

参考资料 : https://www.xionghaier.cn/archives/367.html

下一篇:open*** 配置访问权限策略
下一篇:Windows 上使用 Open*** + Frp 组建本地局域网

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值