Popular blog tags

frp内网穿透:FRP(服务端Ubuntu aliyun+客户端windows)

Published

前言

FRP 是一个国人开发的开源软件,使用 Go 语言开发,高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务。支持 tcp, udp, http, https 协议.

FRP 项目地址:https://github.com/fatedier/frp

 

应用场景

1、让(家里)宿舍自己的电脑跟公司(外地)的电脑互相远程桌面连接(免得每次COPY东西都要搞个U盘等移动存储设备带来带去的)。让你会修改远程连接桌面端口及连接。
2、实现免费空间和免费域名。把自己的机子当做服务器可以让别人访问你的WEB站点(省得做完一个网站要让别人或客户看都要传到给别人买的空间上才可以)。
3、自己架设一个FTP服务器。

准备工作

1.1台Ubuntu服务器: 

2.1台Windows计算机:

内网穿透工具分为服务器端的安装和客户机端的安装两部分。

本文讲解

frp服务端搭建
frp服务端配置
frp客户端配置

 

Part 1.Ubuntu Server端安装、配置、启动和服务管理

1.1Ubuntu Server端安装步骤记录

以下命令在Ubuntu控制台窗口执行。

1.1.1新建目录mkdir -p /usr/local/frp

mkdir -p /usr/local/frp

1.1.2下载、解压、拷贝到指定目录

CPU architecture: x64

1.1.2.1 查看 VPS 的cpu处理器架构,接下来要确定下载哪个版本

#arch

output

# arch
x86_64

1.1.2.2下载与服务器操作系统匹配的frp版本下载包。

wget wget https://github.com/fatedier/frp/releases/download/v0.31.0/frp_0.31.0_freebsd_amd64.tar.gz
tar xzvf frp_0.31.0_freebsd_amd64.tar.gz
mv ./frp_0.31.0_freebsd_amd64/*  /usr/local/frp

updated:20220420
wget https://github.com/fatedier/frp/releases/download/v0.45.0/frp_0.45.0_linux_amd64.tar.gz
tar xzvf frp_0.45.0_linux_amd64.tar.gz
mkdir -p /usr/local/frp
mv ./frp_0.45.0_linux_amd64/*  /usr/local/frp

1.1.2.3 错误处理

1.1.2.3.1测试运行一下frps,看看是否能正常运行

cd /usr/local/frp
./frps --help

1.1.2.3.1.1正常情况下会输出一串帮助信息,那么就说明你下载了正确架构的版本

root@vultr:/usr/local/frp# ./frps --help
frps is the server of frp (https://github.com/fatedier/frp)
Usage:
  frps [flags]
  frps [command]

1.1.2.3.1.2 如果提示-bash: ./frps: cannot execute binary file: Exec format error就说明你下错版本了

遇到cannot execute binary file: Exec format error,下面的原因之一:

1.非root用户或者无执行权限
2.下载包的编译环境和本机的环境不同(程序由其他操作环境复制过来)
检查操作系统是32位or 64位 arm or amd,然后下载正确的版本
wget https://github.com/fatedier/frp/releases/download/v0.31.0/frp_0.31.0_linux_arm64.tar.gz
or
wget https://github.com/fatedier/frp/releases/download/v0.31.0/frp_0.31.0_freebsd_amd64.tar.gz
or
将该程序源码包拷贝过来,重新编译程序

1.1.3 程序结构说明

1.frps和frps.ini是对应服务端的启动程序和配置。
2.frpc和frpc.ini是对应客户端的启动程序和配置。
3.配置文件分简易版和完整版两种,如服务端的配置文件,一个是简版的 frps.ini,另一个是完整版本 frps_full.ini。

1.2 Ubuntu Server端配置

指定服务端监听口

cd /usr/local/frp
cat frps.ini

[common]
#bind_port = 7000 
#默认配置中监听的是 7000 端口,可根据自己实际情况修改。
bind_port = 7188  frp 服务端程序在7188端口监听,等待frp客户端注册进来。

1.3 Ubuntu Server端 启动FRP 服务端(command)

cd /usr/local/frp
./frps -c ./frps.ini

output:

2018/01/25 10:52:45 [I] [service.go:96] frps tcp listen on 0.0.0.0:7000
2018/01/25 10:52:45 [I] [main.go:112] Start frps success
2018/01/25 10:52:45 [I] [main.go:114] PrivilegeMode is enabled, you should pay more attention to security issues

现在程序在7000端口监听,等待客户端的连接。

1.4 Ubuntu Server端服务管理(service)

step 1:

cp /usr/local/frp/systemd/frps.service /etc/systemd/system         

step2:vi /etc/systemd/system/frps.service

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini

[Install]
WantedBy=multi-user.target

step 3:enable and start servivce install first

sudo systemctl daemon-reload
sudo systemctl enable frps.service
sudo systemctl start frps.service

 

other

 

sudo systemctl daemon-reload
sudo systemctl enable frps.service
sudo systemctl start frps.service
sudo systemctl restart frps.service
sudo systemctl stop frps.service
sudo systemctl status frps.service

sudo journalctl -fu frps.service --since today





if (vps is aliyun vps server) then

添加 安全规则:允许 7188   ip:0.0.0.0 /0

Part 2.windows client端FRP 

2.1 下载frp windows版

https://github.com/fatedier/frp/releases/download/v0.31.0/frp_0.31.0_windows_amd64.zip

解压到g:\frp目录

2.2 FRP 客户端配置

 frpc.ini

[common]
# server_addr 为 FRP 服务端的公网 IP
server_addr = 4.3.2.1
# server_port 为 FRP 服务端监听的端口
#server_port = 7000
server_port = 7188

表示客户端要连接ip为4.3.2.1服务器,端口为7000.即4.3.2.1:7000

 

2.2 启动FRP客户端

g:
cd g:\frp
frpc -c frpc.ini
d:
cd d:\frp
frpc -c frpc.ini

output:

2018/01/25 11:15:49 [I] [proxy_manager.go:284] proxy removed: []
2018/01/25 11:15:49 [I] [proxy_manager.go:294] proxy added: []
2018/01/25 11:15:49 [I] [proxy_manager.go:317] visitor removed: []
2018/01/25 11:15:49 [I] [proxy_manager.go:326] visitor added: []
2018/01/25 11:15:49 [I] [control.go:240] [83775d7388b8e7d9] login to server success, get run id [83775d7388b8e7d9], server udp port [0]

2.3 windows client端FRP用户客户端开机启动

首先新建“*.vbs”后缀的脚本(依据FRP的存放目录自行更改)

set ws=WScript.CreateObject("WScript.Shell")
ws.Run "c:frpfrpc.exe -c c:frpfrpc.ini",0

将此脚本放入如下目录中,即可添加开机自启动。如无法找到以上目录,可通过“运行”–“shell:startup”找到。

C:\Users\Administrator\AppData\Roaming\Microsoft\WindowsStart\Menu\ProgramsStartup

 

第二章 Web服务器配置

在windows client端运行网站,端口号为15793

Ubuntu Server端配置

cd /usr/local/frp
vi  frps.ini

增http监听端口

[common]
bind_port = 7188
vhost_http_port = 15793

 

通浏器访问http:// http://www.yourdomain.com:15793 即可访问到处于内网机器上的 web 服务

windows client配置

[common]
#公网服务器ip
server_addr = 4.3.2.1
#与服务端bind_port一致
server_port = 7188

[web02]
type = http
local_ip = 127.0.0.1
local_port = 15793
use_encryption = false
use_compression = false
custom_domains = testapi.iaspnetcore.com

3. 远程桌面配置

修改windows client配置,添加下面的内容

path: g:\frp\frpc.ini

[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 5200

访问

使用vps的ip和端口5200,即可实现内网穿透并远程桌面连接。

4.3.2.1:5200

 

frp

https://www.cnblogs.com/cell-coder/p/13970726.html

集成google输入法的嵌入式中文输入面板 c++

https://github.com/xiaoyanLG/Soft-keyboard