ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

通过代理实现在校园外使用校园网内的服务

2020-02-29 12:01:22  阅读:407  来源: 互联网

标签:主机 linux 校园 代理 frp ini 公网 校园网 port


引言

上了大学后,开始逐渐了解到校园网内有许多资源以及页面是外网访问不到的,例如教务系统(只有特定时期才能从外网访问)、特殊管理页面、校内ftp服务器以及图书馆资源(由于版权问题,强烈不建议通过代理获取图书馆资源)等。但有我们经常会有这么一种情况:身处外网,却又对内网的访问有所需求。比如教务系统、ftp访问以及特殊管理页面登陆等。此时就需要架设代理服务器,通过代理进行内网的访问。

准备

  • 内网主机:可以是你的win电脑(十分不推荐),也可以是其他的“不关机”的主机,建议使用Linux系统的主机,在这里我使用树莓派,系统为Raspbian(关键功耗低,10w左右)
  • 公网主机:因为各种原因,有的校园网不分配公网IP,或者你的内网主机前连接着路由器等,即存在以下情况:无法直接通过内网主机分配到的ip从外网进行访问,此时就需要公网主机。(若使用路由器,也可以免除公网主机,通过路由器内的DMZ(以及DDNS)来实现,不过本文主要来实践frp内网穿透

原理

本文使用frp进行内网穿透,使用*SR进行代理架设。

有很多人会问,为什么R都已经停止维护了,还要用它。相较于其他代理方式,无论是服务端的配置难度还是客户端的易用性、兼容性,S和R都是做得比较好的。而相较于S,R的客户端的易用性最好,所以在此只写R。实际上我还是建议使用S-libev+obfs,不过这样win端就不能开http代理,因此使用情况上具有局限性;而R可以。

步骤

服务端配置

#切换到root用户,你也可以不切换,不过需要在下面的命令前加上sudo
sudo su

#下载程序
wget https://github.com/fatedier/frp/releases/download/v0.17.0/frp_0.17.0_linux_amd64.tar.gz

#解压
tar -zxvf frp_0.17.0_linux_amd64.tar.gz

#切换目录
cd frp_0.17.0_linux_arm64

# 编辑frps.ini
sudo nano frps.ini

frps.ini 内容

  • bind_port 为验证的端口,一般不作改动
  • token 为自定义的值(数字如:1234567890),需要记下,并与后面配置的 frpc.ini 中的值相同
[common]
bind_port = 7000
token = token_value

最后启动frp服务端

#请确保在 frp_0.13.0_linux_arm64 目录下运行
screen ./frps -c ./frps.ini

客户端配置

#切换到root用户,你也可以不切换,不过需要在下面的命令前加上sudo
sudo su

#下载程序
wget https://github.com/fatedier/frp/releases/download/v0.17.0/frp_0.17.0_linux_amd.tar.gz

#解压
tar -zxvf frp_0.17.0_linux_amd.tar.gz

#切换目录
cd frp_0.17.0_linux_arm

# 编辑frps.ini
sudo nano frpc.ini

frpc.ini 内容

[common]

  • server_addr 为公网服务器IP
  • bind_port 为验证的端口,一般不作改动
  • token_value 与前面配置的frps.ini中的值相同

[ssr]

  • local_port ssr的端口
  • remote_port 你连接公网主机的端口
[common]
server_addr = your_server_ip
server_port = 7000
token = token_value

[ssr]
type = tcp
local_ip = 127.0.0.1
local_port = ssr_port_number
remote_port = remote_port_number

#以下可选
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = remote_port_number

最后启动frp客户端

#请确保在 frp_0.13.0_linux_arm 目录下运行
screen ./frpc -c ./frpc.ini

树莓派上R的安装(这里使用了错误的方法)

由于我这里用的 raspberry debian 系统会被一些一键脚本识别错误,可实际运行是没问题的。因此我们需要通过修改文件来使脚本运行。

#编辑/etc/issue,将 Raspbian 改成 Debian
nano /etc/issue

执行一键安装脚本
来源:https://github.com/ToyoDAdoubi/doubi

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/ssr.sh && chmod +x ssr.sh && bash ssr.sh

安装过程不赘述

可能遇到的错误

  • 未安装 screen 的请运行sudo apt-get install screen
    更多有关 screen 的使用方法请访问 Linux screen命令| 菜鸟教程

  • 启动 frpc 时遇到黄字 connect failed: No route to host
    这有可能是防火墙的问题,请检查你的树莓派以及VPS的防火墙设置,开放相应ip以及端口的访问权限,请自行搜索 iptables 相关命令。

使用

与你们熟知的R的使用方法一致,只不过不具备「科学」的效果,因为你的树莓派在国内。R客户端的服务器IP填公网服务器IP,端口填写frpc.ini文件中[ssr]的 remote_port_number 即可。
另外说明,你的网站访问数据都是需要经过公网主机以及内网主机的,是需要消耗vps流量的。

最终效果

img

img

参考资料

借助 frp 随时随地访问自己的树莓派
在 Raspberry Pi 上安装s*
【frp配置教程】frp内网穿透服务端frps.ini各配置参数详解
【frp配置教程】frp内网穿透客户端frpc.ini各配置参数详解

后记

或许有的人觉得我写得太详细了,或许还是有些小细节没能覆盖完全,但看得懂的人自然看得懂。在我看来,写文章的主要目的还是记录我的操作以及思考过程,用作教程分享还只是次要目的,给后来者指指路罢了。

作者:眯杰
链接:https://www.jianshu.com/p/3ae7f8fa3bfd
来源:简书

标签:主机,linux,校园,代理,frp,ini,公网,校园网,port
来源: https://www.cnblogs.com/FSHOU/p/12382155.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有