受欢迎的博客标签

前言

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

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

 

应用场景

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

准备工作

1.1台Ubuntu服务器: 

2.1台Windows计算机:

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

 

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

1.1Ubuntu Server端安装步骤记录

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

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

mkdir -p /usr/local/frp

1.1.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.tar.gz /usr/local/frp

备注:

(1)遇到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
将该程序源码包拷贝过来,重新编译程序

(2)程序结构说明

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

1.2 Ubuntu Server端配置

指定服务端监听口

cat frps.ini

[common]
#bind_port = 7000 
#默认配置中监听的是 7000 端口,可根据自己实际情况修改。
bind_port = 7188

1.3 Ubuntu Server端 启动FRP 服务端

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端服务管理

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


sudo vi /usr/local/frp/systemd/frps.service
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


sudo systemctl daemon-reload


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

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

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

 

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

 

SpringHgui/FastTunnel

FastTunnel是一款高性能跨平台开源c#内网穿透工具,使用它可以实现在公网上访问您的内网服务。

https://github.com/SpringHgui/FastTunnel

 

Wireboy.Socket.P2PSocket

P2P内网穿透,开源c#,实现【公司】-【家】远程控制

https://github.com/bobowire/Wireboy.Socket.P2PSocket

 

 

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

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