clash代理打不开
你好呀,我是程序员了不起,一个90后的老程序员啦~ 平时会在公众号上分享一些自己的生活感悟、读书笔记、程序员、科技类讯息等,欢迎读者朋友留言交流呀~
最近因为各种原因,了不起需要远程办公一段时间。之前也是写了几篇推荐远程控制工具的文章,方便在家远程到公司的电脑上去做调试程序、部署服务、获取文件等操作。
不过如果其他同事也有类似的需求,比如想访问一下我部署的 web 服务,总不能让每个人都连接到我的工作电脑操作吧。
所以今天了不起就要把事情做的彻底些,通过内网穿透工具,实现在家也能访问公司内网环境的问题。说到内网穿透工具,那就少不了大名鼎鼎的 frp 了!
frp 是一个开源的、专注于内网穿透的高性能反向代理应用,使用 go 语言开发,在 github 上的 star 数接近了 70k。
它支持 TCP、UDP、HTTP、HTTPS 等多种协议,而且支持 P2P 通信。frp 可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
frp 主要由客户端(frpc) 和服务端(frps) 两部分组成,服务端一般都需要部署到具有公网 IP 的服务器上,客户端部署在需要穿透的内网主机上。用户通过外网访问服务端的 frps 服务后,frp 会根据请求的端口等信息将请求路由转发到对应的内网主机上,进而实现内网穿透通信。
比如我需要在 Linux 上部署服务端,内网主机是一个 Windows 主机,我需要在内网的 Windows 主机上本地部署一个 web 服务,让其他人通过外网来访问。
其中 frpc.exe 就是客户端程序,frps.exe 是服务端程序。这两个程序对应各自的配置文件, 是客户端配置,frps.ini 是服务端配置。
其中 bind_port 是和客户端绑定的端口,dashboard_port 是 frp 管理面板端口,是可选项。下面的用户名和密码是管理面板的登录信息。vhost_http_port 则是我们需要提供 web 服务的内网穿透时,需要用到的端口号。
其中,server_addr 是服务端的 ip 地址,server_port 是绑定端口,与服务端的配置保持一致。
下方的 type 指定当前需要提供 http 的穿透服务,local_port 是本地 web 服务开放的端口号,custom_domains 是服务端的 ip 地址,当然这里也可以填写域名。
我们用 SpringBoot 来写一个简单的 web 服务,服务端口为 8088,请求直接返回字符串。代码如下:
frp 的功能超级强大,远不止文中介绍的这个小功能这么简单。了不起也尝试了通过内网穿透 3389 端口实现远程桌面服务(不要吐槽我为啥这么喜欢研究远程桌面哈),也是很好实现的clash代理打不开。项目地址和官方文档放到下面啦,大家快去好好研究研究吧。
了不起的程序员交流群(摸鱼、白嫖技术课程为主),又不定时开放了,感兴趣的朋友,下方扫码备注:666。