使用frp进行内网穿透
前言
校园网可以访问知网、万方数据库,可以进入内网,你在家里怎样才能进入校园网这个内网?随时随地用手机访问校园网内网的资源呢?今天小雨给大家介绍一种内网穿透的方式,便捷高效地访问内网。
通过树莓派,实现了远程ssh登录、vnc桌面查看、远程smb访问文件。
一、准备工作
- 你有一台具备公网ip的服务器
- 你有一台能一直工作的且接入了校园网的电脑或者服务器。
- 你稍微了解一点点Linux基础操作。
二、实际操作
1. 下载软件安装包
从frp项目托管网页下载对应版本的安装包,这里我们下载的是frp_0.35.1_linux_amd64.tar.gz
和frp_0.35.1_windows_386.zip
。
2. 服务器端配置
编辑frps.ini
,修改为:
[common]
bind_port = 7000
token = bob.kim
dashboard_port = 7500
dash_user = admin
dash_pwd = admin
max_pool_count = 5
log_file = ./frps.log
log_level = info
log_max_days = 3
2. 本地端配置
编辑frpc.ini
文件,修改为:
[common]
server_addr = 服务器地址
server_port = 7000
token = bob.kim
[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 5200
[http_proxy]
type = tcp
remote_port =6000
plugin = http_proxy
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port =18011
[vnc]
type = tcp
local_ip = 127.0.0.1
local_port = 5900
remote_port = 18012
[samba-rasp]
type = tcp
local_ip = 127.0.0.1
local_port = 445
remote_port = 18013
出现问题解决方案
本地启动失败
报错
A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
wget 服务器ip:端口
,来探测服务器端口有没有打开,如果连接不上则说明服务器端口没开。
我们可以找到服务器供应商的防火墙控制面板里放行端口。
亲测:如果只使用命令firewall-cmd放行端口,有可能是还不够,可能还需--a要到服务器供应商的防火墙页面里操作才行。
查看已经打开的端口
开启服务器端口:
firewall-cmd --zone=public --add-port=5200/tcp --permanent
firewall-cmd --zone=public --add-port=6000/tcp --permanent
firewall-cmd --zone=public --add-port=18010/tcp --permanent
firewall-cmd --zone=public --add-port=18011/tcp --permanent
命令含义解释:
重启防火墙
制作windows自动执行脚本
我们写一个批处理脚本文件,让操作系统开机时自动执行frpc
,脚本内容:
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin
::下面是你自己的代码。
TIMEOUT /T 5
cd C:\frp
frpc -c frpc.ini
bat
后缀,名称任意取,然后保存在目录下
,这样开机就能自动执行了。
制作树莓派自启动脚本
我们把执行frpc程序的过程写成一个服务,让systemctl开机自启动这个服务。
首先,我们把frpc和frpc.ini放在树莓派的/home/pi/frp/
目录下,然后开始写service文件
[Unit]
Description=frpc servic
After=network.target
[Service]
Type=simple
TimeoutStartSec=30
ExecStart=/home/pi/frp/frpc -c /home/pi/frp/frpc.ini
Restart= always
RestartSec=1min
[Install]
WantedBy=multi-user.target
可以使用rc.local实现frp脚本树莓派开机自启动
通过frp远程ssh登录内网树莓派
放在实验室的树莓派,我在宿舍能随时通过ssh登录,当然,如果实验室还有服务器的话,我还能直接登录ssh服务器。如果你的手机或者iPad装一个ssh客户端软件的话,这一切都可以在手机上实现登录!
关键点:一定要确保公网服务器的指定端口是开放的。 frps公网配置:
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 18011 # 这个端口可以自定义,但是要确保防火墙放行了改端口