【内网穿透方案大全】

内网穿透能解决以下常见问题:

  • 开发外网应用时把本地服务映射到外网,加速调试流程;
  • 把你正在开发的本地服务分享给互联网上其它人访问体验;
  • 在任何地方通过互联网控制你家中在局域网里的电脑;

方案一、透过路由器 / 猫路由一体

此方案直接使用本机外网IP穿透,如果IP不固定,可以安装个向日葵、花生壳之类的软件,用的时候查看最新IP。

前提条件

  1. 路由器有外网IP
  2. 路由器配置权限

配置方法

  1. 登录路由器:192.168.X.X,找到《虚拟服务器》,添加映射:外网端口,本机端口,本地IP。
  2. 注意配置允许路由器:端口回流(否则局域网无法访问)
  3. 猫路由一体的可尝试百度查登录账号密码(比如查:猫密码 useradmin)

方案二、使用SSH隧道

前提条件

  1. 一台有外网 IP 的服务器
  2. 本地能通过 ssh 登录服务器

配置方法

1、服务器配置(默认CentOS)

登录服务器:ssh root@XXX.XXX.XXX.XXX -p 22
(1)首先修改服务器 B 的 sshd_config 配置文件:

	vi /etc/ssh/sshd_config

(2)打开 GatewayPort(删除前面的 # 号,将其设置为 yes)>: 键盘按i,编辑配置:

	GatewayPort yes
键盘按ESC,输入:wq保存退出

(3)修改保存后,执行如下命令将 sshd 服务重启下:

	systemctl restart sshd

此项的意思是,SSH 隧道监听的服务的 IP 是对外开放的 0.0.0.0,而不是只对本机的 127.0.0.1。不开 GatewayPorts 的后果是不能通过 外网IP:X 访问,只能在外网服务器上通过 127.0.0.1:XX 访问到本地开发机的服务
(4)使用以上方法还是无法访问 外网IP:XX,请检查你外网服务器的防火墙配置

	打开XX端口
    firewall-cmd --zone=public --add-port=XX/tcp --permanent && firewall-cmd --reload
查看已开端口:
    firewall-cmd --list-ports
关闭端口
    firewall-cmd --zone=public --remove-port=XX/tcp --permanent && firewall-cmd --reload
2、 本机配置

(1)使用ssh

	ssh -CqTfnN -R :外网映射端口:localhost:本地映射端口 root@外网IP -p 22

(2)查看状态
前往外网服务器,可以看到这个监听是否成功链接:

	netstat -anp | grep 外网映射端口

(3)关闭映射
在外网服务器上查看指定端口,对应的sshd进程,Kill相应进程结束转发服务

	kill -9 进程ID

(4) 自动重连
SSH 隧道是不稳定的,在网络恶劣的情况下、或因为超时可能随时断开。如果断开就需要手动去本地开发机再次向外网服务器发起连接。
AutoSSH 能让 SSH 隧道一直保持执行,他会启动一个 SSH 进程,并监控该进程的健康状况;当 SSH 进程崩溃或停止通信时,AutoSSH 将重启动 SSH 进程。
为此我们需要结合免密码登录及 AutoSSH 来提供稳定的 ssh 反向代理隧道。
a、在内网主机 B 上产生公钥和私钥

	ssh-keygen

然后按三次回车执行默认选项生成公钥和私钥。会生成密钥文件和私钥文件 id_rsa,id_rsa.pub 或 id_dsa,id_dsa.pub
b、拷贝秘钥 在内网主机 B 上继续执行如下命令,将内网主机 B上的秘钥文件 copy 到公网主机 A 中。

	ssh-copy-id  user@服务器ip

其中“user”是公网主机 的用户名,ip 为公网主机 A 的 ip,然后按照提示输入公网主机A 的密码就完成了。
(5) 通过源码安装autossh;

$ wget www.harding.motd.ca/autossh/autossh-1.4e.tgz --no-check-certificate
$ tar -xf autossh-1.4e.tgz
$ cd autossh-1.4e
$ ./configure
$ make & make install

(6)启动autossh

只要把 autossh -M XX 替换为 ssh 即可:

	autossh -M 外网映射端口 -CqTfnN -R :外网映射端口:localhost:本地映射端口 root@外网IP -p 22

(7)开机自启动

vi /etc/rc.d/rc.local
#将上一步(6)中代码copy到底部,保存并退出
chmod +x /etc/rc.d/rc.local

方案三、使用frp工具

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。
frp 有以下特性:

  • frp 比 SSH 隧道功能更多,配置项更多;
  • frp 也需要一台外网服务器,并且需要在外网服务器上安装 frps,在本地开发机上安装 frpc;
工具下载

frp链接地址

1、服务器配置

先看看服务器是否开启了任务监听对应端口,默认连接端口是7000

	netstat -tunlp | grep 7000

如果任务已开始监听,然后看看防火墙是否开放了这个端口,很重要

(1)编辑服务端文件frps.ini:

[common]
bind_port = 7000
#dashboard_port = 7500
#dashboard_user = admin
#dashboard_pwd = admin
#authentication_method = token
#token = 设置密码

(2)启动服务frps

./frps -c frps.ini

(3)登录控制面板查看frp服务状态和已连入主机
服务器IP:7500

2、 本机配置

(1)编辑配置文件frpc.ini

[common]
server_addr = 服务器IP
server_port = 7000
#authentication_method = token
#token = 对应服务器端密码
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 2222

[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 3389

(2)启动连接frpc
为了方便,建个bat脚本,可设置开机启动

Start frpc.exe -c frpc.ini

方案四、商用ngrok工具

ngrok 是一个商用的内网穿透工具,它有以下特点:

  • 不需要有外网服务器,因为 ngrok 会为你提供;
  • 只需要在本地开发机安装 ngrok 客户端,和注册 ngrok 账户;
  • 按照服务收费;

结语

1、方便远程桌面,打开本机3389,通过远程映射,实现《远程桌面》访问。
2、架设内网服务器,内网ssh远程访问等服务。
3、通过nginx映射,实现域名访问本地服务器,模拟线上环境。

server {
    listen       80;
    server_name 你的外网域名;
    charset utf-8;
    location / {    
        proxy_pass   http://localhost:映射端口;
    }
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
方案是为解决特定问题或达成特定目标而制定的一系列计划或步骤。它的作用是提供一种系统性的方法,以有效地应对挑战、优化流程或实现目标。以下是方案的主要作用: 问题解决: 方案的核心目标是解决问题。通过系统性的规划和执行,方案能够分析问题的根本原因,提供可行的解决方案,并引导实施过程,确保问题得到合理解决。 目标达成: 方案通常与明确的目标相关联,它提供了一种达成这些目标的计划。无论是企业战略、项目管理还是个人发展,方案的制定都有助于明确目标并提供达成目标的路径。 资源优化: 方案在设计时考虑了可用资源,以最大化其效用。通过明智的资源分配,方案可以在有限的资源条件下实现最大的效益,提高效率并减少浪费。 风险管理: 方案通常会对潜在的风险进行评估,并制定相应的风险管理策略。这有助于减轻潜在问题的影响,提高方案的可行性和可持续性。 决策支持: 方案提供了决策者所需的信息和数据,以便做出明智的决策。这种数据驱动的方法有助于减少不确定性,提高决策的准确性。 团队协作: 复杂的问题通常需要多个人的协同努力。方案提供了一个共同的框架,帮助团队成员理解各自的职责和任务,促进协作并确保整个团队朝着共同的目标努力。 监控与评估: 方案通常包括监控和评估的机制,以确保实施的有效性。通过定期的评估,可以及时调整方案,以适应变化的环境或新的挑战。 总体而言,方案的作用在于提供一种有序、有计划的方法,以解决问题、实现目标,并在实施过程中最大化资源利用和风险管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值