赞
踩
如何暴露内网的http服务到公网访问
如何在远程公网ssh连接到自己家里的内网机器
云服务器上使用的是frp的服务端。在安装之前首先要明确当前使用的服务器的系统信息,否则使用了不匹配的frp版本,会出现:Segmentation fault的错误。可以通过arch命令查看系统信息。
arch
aarch64 #ARM架构
x86_64 #X86架构
对应frp版本:
frp_0.35.1_darwin_amd64.tar.gz #Mac OS系统
frp_0.35.1_freebsd_386.tar.gz #FreeBSD 32位系统
frp_0.35.1_freebsd_amd64.tar.gz #FreeBSD 64位系统
frp_0.35.1_linux_386.tar.gz #Linux 32位系统
frp_0.35.1_linux_amd64.tar.gz #Linux 64位系统
frp_0.35.1_linux_arm.tar.gz #Linux 32位嵌入式系统
frp_0.35.1_linux_arm64.tar.gz #Linux 64位嵌入式系统
frp_0.35.1_windows_386.zip #Windows 32位系统
frp_0.35.1_windows_amd64.zip #Windows 64位系统
再服务器上下载对应的包
根据你的版本进行选择
wget https://github.com/fatedier/frp/releases/download/v0.35.1/frp_0.35.1_linux_amd64.tar.gz
在个人的内网主机上下载对应的包
进入frp目录并查看目录下的文件,其中主要的是以下四个文件, 如果你的版本太新的话,你的文件后缀会是.toml的
cd frp && ls
frpc #客户端的执行程序
frpc.ini #客户端的配置文件
frps #服务端的执行程序
frps.ini #服务端的配置文件
配置服务器的frps.ini
记得把注释都删除
[common]
bind_port = 7000 # 这个是跟客户端(内网主机)交互的端口
vhost_http_port = 8080 # 你如果在客户端配置了http的请求,这里就需要配置该参数或者vhost_https_port https我没有用到就没配置,并且 你的客户端的local_port是多少,你这个就要配置多少
配置客户端的frpc.ini
[common] # 这个不能乱填 这个是公共的
server_addr = 服务器ip #这里是服务器ip
server_port = 7000
[http] # 这个你随便填都没啥,每个中括号之间是一个配置环境 当前就是http的配置环境
type = http # 指定请求的类型 配置了这个后 上面的服务端配置就需要加vhost_http_port
local_ip = 127.0.0.1 # 本地对应服务ip是多少
local_port = 8080 # 本地服务port是多少
custom_domains = 服务器的域名或者ip # 如果你指定了http服务 这个是必须要填的 ,这个是域名 ,要是你没有域名就填ip就行
[ssh] # 如上
type = tcp #
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000 # 这个很重要,你在当前客户端设置后, 当客户端和服务端连接后,服务端会监听6000端口的请求,如果有6000的请求进来,那么客户端就会走当前的配置服务,走本机的22 ssh服务
启动
服务端启动
./frps -c frps.ini
客户端启动
./frpc -c frpc.ini
测试
http测试
ssh测试 (mac测试远程ssh需要开放端口,关闭防火墙,开启共享-远程登录)
绿色为http请求的穿透过程
红色的为ssh连接的穿透过程
(马赛克部分为本人的公网服务器ip)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。