[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基本只需要一台有外网的服务器就可以做到内网服务器和外网服务器一样访问,更多的使用方式大家可以参考官网文档,最后多谢大家的支持,希望本篇文章能够帮助大家解决问题.

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

超全整理!Linux 大牛收集的Linux性能分析工具合集

本文由马哥教育面授班23期学员推荐,转载自恒生研究院,作者为董西孝,内容略经小编改编和加工,观点跟作者无关,最后感谢作者的辛苦贡献与付出。 出于对Linux操作...

1.2K12
来自专栏码农阿宇

一种关于缓存数据何时更新的解决思路

为什么写? 和大家一样,我有每天逛逛博客园的习惯,今天在博客园看到了“一只攻城狮”写的《初遇 Asp.net MVC 数据库依赖缓存那些事儿》。该朋友利用.Ne...

4876
来自专栏IT技术精选文摘

带着问题学习分布式系统之数据分片

分布式系统(尤其是分布式存储系统)需要解决的两个最主要的问题,即数据分片和数据冗余,下面这个图片形象生动的解释了其概念和区别: ? 其中数据即A、B属于数据分片...

4806
来自专栏企鹅号快讯

11个让你吃惊的Linux终端命令

我已经用了十年的linux了,通过今天这篇文章我将向大家展示一系列的命令、工具和技巧,我希望一开始就有人告诉我这些,而不是曾在我成长道路上绊住我。 ? 1. 命...

2309
来自专栏企鹅号快讯

入门干货之用DVG打造你的项目主页-Docfx、Vs、Github

由于这三项技术涉及到的要点以及内容较多,希望大家有空能自己挖掘一下更多更深的用法。 0x01、介绍 VS,即VS2017以及以上版本,宇宙最好的IDE,集成了宇...

2116
来自专栏北京马哥教育

马哥金牌分享 | 十分钟学会用Django快速搭建一个blog

本文是由马哥教育金牌讲师小智的文字分享《如何快速搭建一个博客》整理而来。 ---- 1.django简介 Django是一个开放源代码的Web应用框架,由Py...

3094
来自专栏高性能服务器开发

(八)高性能服务器架构设计总结1——以flamigo服务器代码为例

这篇文章算是对这个系列的一个系统性地总结。我们将介绍服务器的开发,并从多个方面探究如何开发一款高性能高并发的服务器程序。 所谓高性能就是服务器能流畅地处理各个客...

4396
来自专栏Coding+

使用 youtube-dl 下载网络视频

youtube-dl 是一个命令行程序,用于从 YouTube.com 和其他几个网站下载视频。它需要 Python 解释器,版本2.6,2.7或3.2+,它是...

1.7K2
来自专栏CaiRui

nginx的worker_processes优化

nginx的worker_processes参数 来源: http://bbs.linuxtone.org/thread-1062-1-1.html 分享一: ...

6337
来自专栏无题

mongoDB生产环境三种模式

MongoDb在用于生产环境的三种模式,master/slaves(主从模式);replcation副本集;auto shard 分片模式 1.主从复制 ...

7815

扫码关注云+社区

领取腾讯云代金券