如何实现内网穿透

使用内网穿透可以将内网的服务暴露至外网。

应用场景

一个简单的例子,家里有内网摄像头,想要暴露到外网,实现随时在互联网访问,但又不能在ISP那里申请到公网IP,这里就可以使用内网穿透,你只需一台有公网ip的服务器,和一台内网服务器就可以实现。

或者我们自己在home server上运行了一个项目,但想在互联网上访问,我们可以在home server上运行frpc,在外网服务器运行frps。

穿透方案

使用软件:Frp

Frp是一款流行的跨平台开源免费内网穿透反向代理应用,在公网服务器安装一个server端,内网服务器安装一个客户端,起到一个中转转发的作用,从而实现内网暴露到外网,实际就是一个反向代理转发器。

代理类型

frp 支持多种代理类型来适配不同的使用场景。

类型

描述

tcp

单纯的 TCP 端口映射,服务端会根据不同的端口路由到不同的内网服务。

udp

单纯的 UDP 端口映射,服务端会根据不同的端口路由到不同的内网服务。

http

针对 HTTP 应用定制了一些额外的功能,例如修改 Host Header,增加鉴权。

https

针对 HTTPS 应用定制了一些额外的功能。

stcp

安全的 TCP 内网代理,需要在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。

sudp

安全的 UDP 内网代理,需要在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。

xtcp

点对点内网穿透代理,功能同 stcp,但是流量不需要经过服务器中转。

tcpmux

支持服务端 TCP 端口的多路复用,通过同一个端口访问不同的内网服务。

软件安装(客户端与服务端)

检查架构

arch

X86_64选择amd64

wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz

其他架构在GitHub可以找到下载链接

以0.34.3版本为例

解压

tar -zxvf frp_0.34.3_linux_amd64.tar.gz

顺便重命名

mv frp_0.34.3_linux_amd64 frp

或者

cp -r frp_0.34.3_linux_amd64 frp

服务端设置

cd path/to/frp
vim frps.ini
bind_port = 1234

dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = password

[ssh]
type = tcp

listen_port = 8888
auth_token = xxxx

不用dashboard可以不设置,主要设置的是bind_portlisten_port

bind_port是供客户端的端口号,对应客户端server_port的设置

listen_port是对外开放的端口,连接成功后通过公网ip+这个端口可以访问到内网local_port端口上的服务

配置完成后,

./frps -c frps.ini&

即可启动服务。

客户端设置

cd path/to/frp
vim frpc.ini
[common]
server_addr = x.x.x.x
server_port = 1234
auth_token = xxxx

[ssh]
type = tcp
local_ip = x.x.x.x
local_port = 22
remote_port = 8888
auth_token = xxxx

主要设置的是server_addrlocal_iplocal_portserver_portremote_port

server_port是连接服务端的端口号,对应服务端bind_port的设置

remote_port是对应服务端listen_port的设置

配置完成后,

./frpc -c frpc.ini&

即可启动服务。

更多

参见gofrp官方文档中给出的示例

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得UP主同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理:DMCA投诉/Report
专栏区-攻略专栏区-生活

[经验分享]如何在国内直接使用USDT支付

2023-2-22 23:02:20

专栏区-杂文学习区-技术教程

经济思想的源与流-经济哲学的主要争论

2023-2-24 23:20:42

3 条回复 A文章作者 M管理员
  1. baiduzhe

    外网服务器是不是要买

    • NiimiSora

      是的,需要一个有公网ip的外网服务器,可以是VPS或者轻量应用服务器

  2. wxccna

    甚至你还能学习到运维

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索