专栏首页喵了个咪的博客空间[Golang软件推荐] Frp内网穿透

[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 条评论
登录 后参与评论

相关文章

  • [喵咪KafKa(3)]PHP拓展See-KafKa

    [喵咪KafKa(3)]PHP拓展See-KafKa ? 前言 (Simple 简单 easy 容易 expand 的拓展) KafKa是由Apache基金会维...

    喵了个咪233
  • [喵咪KafKa(1)]KafKa的介绍以及使用场景

    [喵咪KafKa(1)]KafKa的介绍以及使用场景 ? 前言 哈喽!大家好呀,真是一坑未平一坑又起,otter还在继续更新的同时,笔者也为大家带来了关于kaf...

    喵了个咪233
  • PhalGo-参数验证过滤

    PhalGo-参数验证过滤 phalGo 的参数过滤使用 beego 提供的独立模块 validation 进行封装改造 , 从而达到可以和 request 一...

    喵了个咪233
  • Free FrpService

    手里面有一个树莓派3B,让他作为一个网络服务器提供服务下载服务,即便这玩意儿的网口和SD卡速度有点着急,但是也会比GitHub速度快,笔者一直深入机器视觉领域,...

    用户1327296
  • 使用内网穿透工具frp

    前几天写了篇文章用本机电脑搭建网站(域名、DNS解析),写完第二天发现我的网站访问不上去了。仔细研究了一下,发现我想的太简单了。很早一些时候,运营商会给我们分配...

    乐百川
  • Fixed: MacOS Mojave(10.14) 解决终端用Crontab报权限问题(不管是Root还是普通用户)及Linux基础(shell)

    不管是用Root还是自身用户..都会报Operation not permitted(任务没法写入);

    CRPER
  • github学习(三)

    Git学习(二) 分支学习: 创建新分支dev:git branch dev 切换到dev分支:git checkout dev 可以简写为一句话:git ch...

    希希里之海
  • Android 原生 SQLite 数据库的一次封装实践

    本文主要讲述原生SQLite数据库的一次ORM封装实践,给使用原生数据库操作的业务场景(如:本身是一个SDK)带来一些启示和参考意义,以及跟随框架的实现思路对数...

    2020labs小助手
  • 高等数学——牛顿莱布尼茨公式与定积分的计算

    通过之前的文章,我们基本上熟悉了定积分这个概念和它的一些简单性质,今天终于到了正题,我们要试着来算一算这个积分了。

    TechFlow-承志
  • C语言程序设计_现代方法

    时至今日, C语言仍然是计算机领域的通用语言之一,但今天的 C语言已经和最初的时候大不相同了。本书最主要的一个目的就是通过一种“现代方法”来介绍 C语言,书中强...

    用户3157710

扫码关注云+社区

领取腾讯云代金券