基于SSH协议的内网穿透,访问内部笔记本电脑

本文详细指导如何通过公网服务器、内网笔记本和SSH工具,配合Nginx实现外网访问内网Web服务,包括反向代理设置、SSH连接管理、Nginx配置和解决访问限制问题,以及如何实现SSH免密登录和开机自启动。

搭建环境的准备工作

1、公网服务器(本文选择阿里云服务器)
2、内网笔记本电脑一台
3、外网笔记本电脑一台
4、在各个机器上安装ssh工具,外网电脑上本文采用MobaXterm软件
5、保证ssh可以开机自启动

基于ssh+nginx实现外网访问内网的web网站

1、内网笔记本:建立反向代理
2、公网云服务器
3、公网云服务器:配置nginx
4、浏览器访问网站即可
服务器上部署了web项目,由于外网无法访问到该网站,所以使用frp内网穿透工具借助阿里云服务器代理,从而实现了外网访问该网站。检测到了我们的frp连接,被屏蔽掉公网ip。frp方式会被检测到,不得不寻找其他方法。

机器的基本信息:

(1) 内部笔记本:

  1. ip:192.168.100.4
  2. 用户名: xiaoming
  3. ssh端口:22

(2) 公网服务器:
4. ip:19.168.100.4
5. 用户名: root
6. ssh端口:22

注意:上表提供的端口请保证不被防火墙挡住,保证云服务器端口已添加到安全组。一般国内云服务器(如阿里云)需要提前在官网后台添加安全组规则,以开放该端口。
为安全起见,建议不要直接使用root用户去做下文的操作,新建一个权限比较低的普通用户。

ssh工具

apt install openssh-server
service ssh restart

反向代理 ssh -fCNR,我们要在内网笔记本上用的。
正向代理 ssh -fCNL,根据需要使用,云服务器上使用,如果需要。

-f 后台执行ssh指令
-C 允许压缩数据
-N 不执行远程指令
-R 将远程主机(服务器)的某个端口转发到本地主机指定的端口
-L 将本地机(客户机)的某个端口转发到远端指定机器的指定端口
-p 指定远程主机的端口

autossh工具

ssh工具虽然可以后台运行,但一旦断开了连接,则不会尝试重连!而autossh恰好可以解决这个问题,在网络不稳定时,ssh连接可能会断开,而autossh则会尝试自动重连!

apt install autossh

如何代替ssh?
直接将命令ssh,替换为


                
### 如何通过内网穿透实现服务器与笔记本之间的连接 #### 配置方法概述 内网穿透是一种技术手段,用于让外部网络能够访问位于局域网中的设备和服务。常见的工具包括 Frp、Ngrok 和其他类似的解决方案。以下是基于 Frp 工具的配置方法,适用于 ECS 服务器和本地笔记本电脑之间的连接。 --- #### 一、Frps 端(服务器端)配置 1. **下载并解压 Frp 文件** 在阿里云或其他公网服务器上安装 Frp 客户端文件。 ```bash wget https://github.com/fatedier/frp/releases/download/v0.48.0/frp_0.48.0_linux_amd64.tar.gz tar -zxvf frp_0.48.0_linux_amd64.tar.gz cd frp_0.48.0_linux_amd64/ ``` 2. **编辑 `frps.ini` 配置文件** 修改默认配置文件以适配实际需求。 ```ini [common] bind_port = 7000 # 设置监听端口,默认为7000 dashboard_port = 7500 # 可选:监控面板端口 token = your_token_here # 自定义密钥,增强安全性 vhost_http_port = 80 # 如果需要转发 HTTP 流量,则设置此参数 log_file = ./frps.log # 日志记录路径 max_pool_count = 5 # 单个客户端的最大并发数 allow_ports = 2000-3000 # 允许分配给客户端使用的端口号范围 subdomain_host = example.com # 子域名解析支持 (可选) ``` 上述配置中,`bind_port` 是核心参数,表示服务器监听来自客户端的请求[^1]。 3. **启动 Frps 服务** 使用以下命令运行 Frps: ```bash nohup ./frps -c ./frps.ini & ``` --- #### 二、Frpc 端(客户端/笔记本端)配置 1. **下载并解压 Frp 文件** 同样,在本地笔记本电脑上也需要准备 Frp 客户端文件。 ```bash wget https://github.com/fatedier/frp/releases/download/v0.48.0/frp_0.48.0_linux_amd64.tar.gz tar -zxvf frp_0.48.0_linux_amd64.tar.gz cd frp_0.48.0_linux_amd64/ ``` 2. **编辑 `frpc.ini` 配置文件** 根据具体需求调整配置文件内容。 ```ini [common] server_addr = xx.xx.xx.xx # 替换为公网服务器 IP 地址 server_port = 7000 # 对应 Frps 的 bind_port 参数 token = your_token_here # 必须与 Frps 中一致 [ssh] type = tcp # 表明协议类型 local_ip = 127.0.0.1 # 笔记本上的目标服务地址 local_port = 22 # 笔记本上的 SSH 服务端口 remote_port = 6000 # 映射到公网的服务端口 [web] type = http # 支持 HTTP 请求 custom_domains = mysite.example.com # 域名绑定 local_port = 80 # 笔记本上的 Web 服务端口 ``` 此处 `[ssh]` 和 `[web]` 分别代表两种不同的服务映射场景。 3. **启动 Frpc 服务** 执行如下命令来启动客户端程序: ```bash nohup ./frpc -c ./frpc.ini & ``` --- #### 三、测试连接 完成上述两部分配置后,可以通过以下方式进行验证: 1. **SSH 登录测试** 尝试从任意位置使用公网 IP 访问笔记本上的 SSH 服务。 ```bash ssh username@xx.xx.xx.xx -p 6000 ``` 2. **Web 页面访问测试** 输入绑定的自定义域名或直接输入公网 IP 加指定端口号查看效果。 ``` http://mysite.example.com 或者 http://xx.xx.xx.xx:remote_web_port ``` --- #### 四、注意事项 - **防火墙规则**:确保服务器的安全组允许入站流量到达所设定的 `bind_port` 和 `vhost_http_port`。 - **动态 DNS 处理**:如果笔记本所在网络存在 NAT 或 DHCP 动态分配 IP 的情况,需额外考虑 DDNS 解决方案[^3]。 - **日志排查问题**:当遇到异常时,查阅两端的日志文件定位原因。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值