|
因为家里是移动千兆宽带,没有公网ip,恰巧我又有台vps.新配的电脑想做个allinone.只好自己鼓捣
所有内容都是网上查询和自我摸索到的.
我也是新手,有意见大家提哈
前提:有自己的服务器,有内网穿透的需求
部署frp服务端
服务端建议部署在国内VPS、国内NAT VPS、国外CN2 GIA VPS上,以提供良好的访问体验。
1. 打开 frp下载页面,下载最新版的 frp_0.37.1_linux_amd64.tar.gz,然后上传到服务器(windows上传请参考:Bitvise连接Linux服务器教程,mac系统上传请参考:Mac电脑连接Linux教程),也可以ssh连接到服务器后用wget下载:
wget https://github.com/fatedier/frp/ ... _linux_amd64.tar.gz
注意不要下错
绝大部分服务器系统都是64位,因此本教程直接让你下载amd64的压缩包。如果你用的树莓派等特殊服务器,请换成相应架构的安装包。
2. 服务器上解压安装包:tar -zxvf frp_0.37.1_linux_amd64.tar.gz;
3. 进入解压后的目录:cd frp_0.37.1_linux_amd64,然后用vim/nano等编辑器编辑frps.ini文件(可以下载到本地,编辑好后再上传上去),填入下面的内容:
举例:
vps ip:1.1.1.1
域名:aaaaaa.tk
[common]
# frp监听的端口,默认是7000,可以改成其他的
bind_port = 7000
# 授权码,请改成更复杂的,和客户端的必须相同
token = ****
#需要*.aaaaaa.tk指向服务器1.1.1.1
subdomain_host = aaaaaa.tk
#客户端启用http服务时,需要和服务端相同,可以用80,这样就不用输入80,不输入端口时默认是80,但不建议
vhost_http_port = 7700
# frp管理后台端口,请按自己需求更改
dashboard_port = 7500
# frp管理后台用户名和密码,请改成自己的
dashboard_user = rightright
dashboard_pwd = rightright
enable_prometheus = true
# frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3
备注:如果server不配置vhost_http_port,客户端又有http,则会报错:
type [http] not support when vhost_http_port is not set
4. 设置和启动frp服务:
mkdir -p /etc/frp
cp frps.ini /etc/frp
cp frps /usr/bin
cp systemd/frps.service /usr/lib/systemd/system/
systemctl enable frps
systemctl start frps
注意:这些命令执行成功的前提是进入了解压后的frp目录下(黑窗口执行过cd frp_0.37.1_linux_amd64命令)
5. 防火墙放行端口:
debian
#安装iptables(通常系统都会自带,如果没有就需要安装)
apt-get update
apt-get install iptables
#要放行所有需要的端口
iptables -I INPUT -p tcp --dport 7000 -j ACCEPT
iptables -I INPUT -p tcp --dport 7500 -j ACCEPT
iptables -I INPUT -p tcp --dport 7700 -j ACCEPT
#然后保存放行规则
iptables-save
#设置完就已经放行了指定的端口,但重启后会失效,下面设置持续生效规则;
#安装iptables-persistent
apt-get install iptables-persistent
#保存规则持续生效
netfilter-persistent save
netfilter-persistent reload
#设置完成后指定端口就会持续放行了;
centos
# 添加监听端口
firewall-cmd --permanent --add-port=7000/tcp
# 添加管理后台端口
firewall-cmd --permanent --add-port=7500/tcp
firewall-cmd --reload
注意:
1. 如果是ubuntu或者centos 6,请使用ufw/iptables工具放行端口;
2. 7000和7500两个端口记得改成和frps.ini配置的一样
6. 浏览器打开“http://服务器IP:后台管理端口” ,输入用户名和密码可以查看连接状态:
服务端配置好后,接下来介绍客户端配置。
配置frp客户端
1. 首先还是打开 frp下载页面,下载最新版的客户端。根据客户端平台不同,请按照下面对应关系下载:
windows系统:32位系统下载frp_0.37.1_windows_386.zip,64位系统下载 frp_0.37.1_windows_amd64.zip,如果不知道系统多少位,下载32位的总没错;
mac系统:下载 frp_0.37.1_darwin_amd64.tar.gz;
linux系统:32位系统下载 frp_0.37.1_linux_386.tar.gz,64位系统下载 frp_0.37.1_linux_amd64.tar.gz,不知道请下载32位的;
树莓派/路由器等:32位系统下载 frp_0.37.1_linux_arm.tar.gz,64位系统下载 frp_0.37.1_linux_arm64.tar.gz,如果不知道系统多少位,直接下载32位的。
2. 解压缩下载的压缩包,进入文件夹内;
3. 编辑frpc.ini,按照自己的需求设置转发。下面是一个示例:
# 服务端配置
[common]
server_addr = 1.1.1.1
# 请换成设置的服务器端口
server_port = 7000
#和server必须相同
token = *****
# 配置ssh服务,ssh1这个名字必须独一无二,不能重复
[ssh1]
type = tcp
#局域网ip
local_ip = 127.0.0.1
local_port = 22
#不同客户端不同,使用云服务器哪个端口访问本机
remote_port = 7001
#启用加密
use_encryption = true
#启用压缩
use_compression = true
# 配置http服务,可用于小程序开发、远程调试等
[web1]
type = http
local_ip = 127.0.0.1
#为本机上提供的web服务端口,和其他端口不同,不同客户端可以相同,本地的,尽量不同,防止在同一局域网
local_port = 7701
#不同机器不同
subdomain = app
#必须和server相同,可以不写
remote_port = 7700
#Remote Desktop,Win的 RDP 默认端口是3389,tcp.本条规则可以实现远程连接。
[rdp1]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 7002
#SMB,即 Win文件共享协议,默认445,tcp,可实现远程文件访问。
[smb1]
type = tcp
local_ip = 127.0.0.1
local_port = 445
#设定远程端口,当访问服务器的7002端口时,数据会被转发到本地445端口
remote_port = 7003
注意:
将泛域名 *.aaaaaa.tk 的A记录解析到 frps 所在服务器的 1.1.1.1 地址。
1. 一个服务端可以同时给多个客户端使用
2. [ssh]这样的名称必须全局唯一,即就算有多个客户端,也只能使用一次,其他的可以用[ssh2]、[ssh3]等;
3. 除了type为http/https,端口只能被一个服务使用
4. 如果用的nat vps,remote_port请改成映射后的端口
4. 登录服务器,防火墙放行监听的端口:之前做过的可以跳过
nat vps放行的端口应该是系统内部端口
5. win,程序文件夹下打开cmd
frpc.exe -c frpc.ini
6. 登录frp管理后台,应该可以看到客户端已经连上来了
win开机启动:
创建frpc.vbs文件
dim objShell set objShell=wscript.createObject("WScript.Shell")
iReturnCode=objShell.Run("D:\App\frp\frpc.exe -c D:\App\frp\frpc.ini",0,TRUE)
双击 frp.vbs ,即可启动 frpc 服务。
将 frp.vbs 放在 C:\Users\h\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 启动目录中,即可实现开机启动。
ssh登录:
ip:远程主机
端口:此处为[ssh]下定义的romote_port:7001
用户:计算机管理-用户组.为:h
密码:是我登录的微软账号的密码,不是开机密码
或者直接命令行:
ssh -p 7001 h@1.1.1.1
web访问:
http://app.aaaaa.tk:7700/
此处,app为二级域名,7700是server配置的vhost_http_port
远程控制:
win:地址:1.1.1.1:7000,之后输入用户名和密码就能成功远程了。
一:linux访问win:
Deepin 的应用商店安装 Remmina 工具,Remmina 是一个支持 SSH RDP VNC 等多种协议的远程桌面客户端,运行之后,打开右上角的菜单,选择“首选项”,切换到“RDP”选项卡,质量设置里,可以选择一个预设项,比如“良好”,一定要勾选“平滑字体”,保存。
回到Remmina主程序,点击左上角创建连接,名称由自己定,,协议选择“RDP”,服务器填写自己的阿里云服务器的IP地址,端口号是电脑A frpc.ini 配置文件指定的 33891,如果使用默认的3389端口,可以不填端口号。切换到高级项,将画质设置为“良好”,声音也可以打开,安全项不变,但是如果电脑A的系统是windows7,安全项一定要设置为"RDP"才能连接。
一切配置就序,连接之后,输入被控的Win10系统的用户名密码登录
二:win访问win:
如果是 win7以上系统控制另外一台win:打开windows的远程桌面连接程序(mstsc.exe),输入代理服务器IP及端口,连接即可。
二:win访问linux:
linux安装远程桌面服务,打开终端,运行:sudo apt-get install xrdp
延续windows的运程桌面,依然使用RDP协议,安装xrdp 做为Deepin 远程桌面服务。
在win上,打开远程桌面连接程序(mstsc.exe),输入代理服务器IP地址及端口号,即可连接。
SMB文件共享:
支持smb的软件,主机地址为1.1.1.1,端口为7002,必须使用支持自定义端口的app,要不然就变成默认的445了
|
|