[Golang软件推荐] Frp内网穿透

在一个IP紧缺的时代,连电信也不分配固定IP给到你用,一条专网专用线路贵的不行,那么作为软件开发人员常常要使用到外网,比如和微信调试程序,给到不在同一网段的朋友一起调试程序等,大家耳熟能详的内网穿透就是花生壳,但是花生壳的灵活性比较差,笔者就想有没有什么更好的办法自己搭建一个内网穿透服务器呢?那么今天就给大家推荐一款自建内网穿透.

附上:

喵了个咪的博客:w-blog.cn

frp-Github地址:https://github.com/fatedier/frp

frp-中文文档:https://github.com/fatedier/frp/blob/master/README_zh.md

1.安装

注意: frp 仍然处于前期开发阶段,未经充分测试与验证,不推荐用于生产环境。 目前的交互协议可能随时改变,不保证向后兼容,升级新版本时需要注意公告说明同时升级服务端和客户端。

Frp架构如下:

这里准备一台本地内网IP为192.168.1.100的机器和一台阿里云有外网IP出口的服务器,Frp在这两台机器上都要安装

笔者这里使用的是Centos 64位版本需要其他版本可以去此处下载:https://github.com/fatedier/frp/releases

mkdir -p /app/install
cd /app/install
wget https://github.com/fatedier/frp/releases/download/v0.16.0/frp_0.16.0_linux_amd64.tar.gz
tar -zxvf frp_0.16.0_linux_amd64.tar.gz
mv frp_0.16.0_linux_amd64 /usr/local/frp

解压完之后会有两个可执行程序 frps 和 frpc 将 frps 及 frps.ini 放到具有公网 IP 的机器上。 将 frpc 及 frpc.ini 放到处于内网环境的机器上。

2.使用

这里配置一个在外网开放30080端口,通过这个端口可以访问到内网机器的22端口

修改配置文件 frps.ini

# frpc.ini
[common]
# 外网IP地址
server_addr = x.x.x.x
# 端口用于frpc进行连接
server_port = 7000
# 打开密码验证
privilege_mode = true
# 配置密码
privilege_token = frp

[ssh_22]
type = tcp
// 连接密码
auth_token = frp666
// 对应本地的IP
bind_addr = 192.168.1.100
// 服务端开启的端口号
listen_port = 30080

修改配置文件 frpc.ini

[common]
# 服务端的IP 和 端口
server_addr = x.x.x.x
server_port = 7000
# 对应的两个密码
privilege_token = frp
auth_token = frp666

[ssh_30080]
type = tcp
# 对应的本地的IP和端口
local_ip = 192.168.1.100
local_port = 22

在分别两台机器上运行如下命令

# 有外网的机器运行
/usr/local/frp/frps -c /usr/local/frp/frps.ini
# 在内网的机器运行
/usr/local/frp/frpc -c /usr/local/frp/frpc.ini

这样就可以访问了到本地的22端口在任何地方都可以访问自己内网的服务器了

3 总结

Frp不止支持TCP模式还支持UDP,DNS,WEB,SOCKET5等,可以说功能非常强大,有了Frp基本只需要一台有外网的服务器就可以做到内网服务器和外网服务器一样访问,更多的使用方式大家可以参考官网文档,最后多谢大家的支持,希望本篇文章能够帮助大家解决问题.

注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!

转载于:https://my.oschina.net/wenzhenxi/blog/1649128

内网穿透是指通过一种技术手段,将内网中的服务暴露到公网中,使得外部网络可以访问到内网中的服务。在golang中,可以使用frp(Fast Reverse Proxy)来实现内网穿透。 要使用golang进行内网穿透,首先需要下载frp的客户端和服务端二进制文件。你可以在frp的GitHub Release页面中找到最新版本的文件,并选择适合你操作系统的版本进行下载。\[3\] 在部署frp之前,你需要在具有公网IP的机器上部署frps(frp服务器),并进行简单的配置。在frps.ini文件中,你可以设置frp服务器接收客户端连接的端口。\[2\] 接下来,在需要被访问的内网机器上部署frpc(frp客户端),并进行相应的配置。在frpc.ini文件中,你需要设置frps所在服务器的公网IP和端口,并指定要进行内网穿透的服务类型和相关参数,比如SSH服务的本地IP、本地端口和远程端口。\[2\] 通过以上配置,frp会将公网访问frps的流量转发到内网机器的指定端口,从而实现内网穿透。例如,通过SSH访问内网机器,可以使用以下命令:ssh -oPort=6000 test@x.x.x.x,其中x.x.x.x是frps所在服务器的公网IP。\[1\] 需要注意的是,内网穿透涉及到网络安全和防火墙配置等问题,请确保在使用frp进行内网穿透时,采取适当的安全措施,以保护内网的安全。 #### 引用[.reference_title] - *1* *2* *3* [frp ---- golang编写的内网穿透工具简介](https://blog.csdn.net/weixin_44235759/article/details/121353931)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值