使用Anyproxy搭配frp搭建校园网回校代理

搭建回校代理,方便在外访问学校服务器 需求 由于学校vpn仅限教职工与博士使用,同时校园网仅限一台pc设备同时在线,所以有时需要笔记本连接热点的情况下连接实验室内部的服务器就显得非常蠢笨以及困难。 目前已经搭建了校园网内台式机的rdp外网连接,但是在不稳定的网络状况下,rdp有时候心有余而力不足,同时更多的需求只是需要进行内网的ssh连接,使用rdp未免有些大材小用 实现工具 Anyproxy 阿里开源的一款开箱即用的代理服务 带有web监控页面 支持http/https代理 依赖于nodejs,方便安装 支持生成CA证书认证 Frp go语言的一款开箱即用内网穿透 支持插件,方便后期进行拓展 支持单服务端多客户端 全平台对称,方便跨平台使用 实现方案 安装Nodejs 官网下载nodejs的安装包 按照你默认设置进行安装 Note: 中途会提示是否安装choco,在本次教程中可以将勾选取消,目前我们用不到 使用npm安装anyproxy 启动cmd/powershell任意命令行窗口 npm install anyproxy -g 命令行窗口直接执行anyproxy --port <port_u_want_to_use_as_proxy> ==Note:==上述测试可能会出现command not found的问题,需要手动将命令行定位到<node_install_path>/node_global/node_mudoles/下 在网内机器上安装配置frpc 在Release页面下载合适的系统版本并解压 使用记事本编辑frpc.ini,替换为下列内容 [common] server_addr = <ur_frps_address> server_port = <ur_frps_port> [anyproxy-interface] local_ip = 127.0.0.1 local_port = 8002 remote_port = 8002 [anyproxy-http] local_ip = 127.0.0.1 local_port = <port_u_want_to_use_as_proxy> remote_port = <port_u_want_to_use_as_proxy> 启动测试frpc.exe -c frpc.ini 在具备公网ip的机器上安装frps 下载同上 使用合适的文本编辑工具编辑frps.ini,替换为下列内容 [common] bind_port = <ur_frps_port> 启动测试frps -c frps.
Read more →

使用wireguard&wg-easy快速实现异地组网

背景 WireGuard:是一个现代化的基于Linux内核态运行的高效、优雅的跨平台VPN实现方案;底层协议采用UDP进行数据传输 wg-easy:是一个使用Vue+wireguard开发的快速启动、管理、监控wg服务的docker镜像 需求: 异地组网:n台互相在异地的机器相互组成一个局域网并各自拥有自己在该虚拟内网中的独立ip地址,实现无障碍安全互访 无公网ip:这里不做标题党,具体的网络拓扑是: 1台具备公网ip的服务器 n-1台不具备公网ip并且藏在无数层NAT之后的机器 解决方案 总体思路 使用具备公网ip的服务器作为wg服务端,所有在vpn内的机器直接通过该设备进行流量转发 wg-easy启动在公网ip服务器,并统一通过面板为客户机下发配置文件 其他设备直接本机安装wg作为客户端 启动服务端(具备公网ip的机器) 这里采用docker-compose的方式进行启动,由于wg-easy具备一个漂亮的管理面板,故使用traefik对其进行管理 建立启动配置文件 version: "3.8" services: wg-easy: environment: # ⚠️ Required: # Change this to your host's public address - WG_HOST=<ur host domain> # - WG_DEFAULT_DNS=192.168.2.1 - WG_ALLOWED_IPS=<set default ACL in the clients> # Optional: - PASSWORD=<web ui's password> # - WG_PORT=51820 - WG_DEFAULT_ADDRESS=10.8.0.x # - WG_MTU=1420 image: weejewel/wg-easy container_name: wg_easy volumes: - <path_to_host>:/etc/wireguard # ports: # - "51820:51820/udp" # control port(main) # - "51821:51821/tcp" # web ui port network_mode: "host" # ⚠️Required restart: unless-stopped cap_add: - NET_ADMIN - SYS_MODULE labels: - traefik.
Read more →

使用zerotier-one搭配anyproxy保障多种方式回内网

背景 之前写过怎么在win平台使用frp搭配zerotierone搭建回校内网,详见这里 但是pc经常会出现关机等等意外情况,同时frp一定需要一台公网服务器,受限于国内带宽的高价,有时候该种解决方案并不是最优 本次介绍一种使用zerotier-one的官方服务进行内网组建同时搭配anyproxy的vpn方法 刚好趁此机会介绍一下在linux下的anyproxy的安装配置 产品简介 anyproxy 跨平台基于nodejs的快速http代理工具,不多介绍 zerotier-one 一款全平台的vpn子网组件工具 该工具会自动在转发、直通、p2p等方式中选择最优方案进行子网组建 官方提供转发服务器,虽然是在境外(速度相对较慢)但是聊胜于无,免费账号可以同时加入100台机器(甚至对于一个小团队都是够用的),不限制子网数量 动手吧! 安装anyproxy 首先确保有npm工具: npm -v 直接进行一个安装 sudo npm install anyproxy -g 启动测试 anyproxy --port <proxy port u wanna use> 配置开机启动 防止机器断电,还是配置一下开机自启比较好 为了方便(其实是我只会这一种),这里使用systemd的方式配置开机自启 具体systemd是什么请自行google,这里只需要知道该守护程序有两个可以放置配置文件的地方:/etc/systemd/system/或者/usr/lib/systemd/system/ 创建服务文件 sudo touch /usr/lib/systemd/system/anyproxy.service 编写服务文件(复制记得删除注释) [Unit] Description=Initiate the anyproxy server # 给出一个详细描述 After=network-online.target # 固定 [Service] Type=simple # 固定 ExecStart=/bin/bash <abspath_to_init.sh> # 需要将anyproxy的启动写成一个sh脚本,并放在任意位置,chmod给执行权限 Restart=on-abort # 固定 User=root # 固定 [Install] # 固定 WantedBy=default.target # 固定 重载 sudo systemctl daemon-reload 启动 sudo systemctl start anyproxy 查看运行状态 sudo systemclt status anyproxy 设置开机自启 sudo systemctl enable anyproxy 安装配置zerotier-one 下载 这里下载并安装 注册并创建一个子网 这里使用你喜欢的方式注册登录zerotier 点击Create A Network,稍等片刻点击进入创建好的子网 起一个喜欢的名字,其他保持默认即可 记下来最上边的Network ID,这个后边会用 加入网络 Linux 执行下列命令加入刚刚创建的子网 sudo zerotier-cli join <Network ID> 稍等片刻,回到网页后台会发现在Members区域出现了刚刚加入的机器,但是zerotier默认新加入的机器没有任何ip分配权限,需要点击最前边Auth?
Read more →