SSH远程控制(1)——内网穿透:linux穿linux、windows穿linux

假设情况是:我们需要远程ssh访问我的linux工作站,但是接的是scunet的校园网内网,如果在同一个局域网内是非常简单的,在不同局域网内用windows、linux穿linux工作站的方法稍有不同,具体解决办法如下:

1.生成密钥对:

(1)在终端运行

ssh-keygen

生成默认的RSA密钥。通过ssh-keygen -t可以自定义5中密钥类型,通过man ssh-keygen查看。

(2)输入保存路径,不修改则为默认。

(3)输入管理密码,最好不要为空。

成功后会出现:

Your identification has saved in *** 这是私钥保存的位置(默认是:/home/zzq/.ssh/id_rsa)

Your public key has saved in *** 这是公钥保存的位置(默认是:/home/zzq/.ssh/id_rsa.pub)


2.复制公钥内容给服务器认证列表:

(1)创建.ssh/authorized_keys:

touch .ssh/authorized_keys  // 创建文件
chmod 700 .ssh      //设置权限
chmod 600/644 .ssh/authorized_keys  //设置权限

(2)复制id_ras.pub的内容给authorized_keys中保存

(3)确认/etc/ssh/sshd_config中记录的认证列表的目录:


(4)如果后面连接成功了还会出现known_hosts文件,记录远程连接的主机


3.同一局域网下远程连接Linux服务器:

如果是在同一个局域网内就很简单了,直接输入:

ssh zzq(your uesr name)@host IP -p 22(default:22) -i ~/.ssh/id_rsa

host IP可以在Ubuntu下的connection Information中查看。

端口号默认是22,在sshd_config中也可以修改为其他端口号。


4.不同一局域网下远程连接Linux服务器:

(1)我记得Ubuntu是默认安装openssh-client的,openssh-server需要自行安装,此链接非常详细:

https://help.ubuntu.com/lts/serverguide/openssh-server.html

也可通过以下语句,对两台机器都安装并打开openssh服务:

sudo apt-get install openssh-client
sudo apt-get install openssh-server
sudo /etc/init.d/ssh start //重启服务

(2)无论是用windows穿还是linux穿都需要在本Linux服务器下下载一个ngrok,它是一个可以穿透内网的软件,下载地址为:https://ngrok.com/

按照ngrok网站上的步骤下载、安装、运行即可,我输的:./ngrok tcp 22

使用的默认的端口22,出现:


(我也不知道为啥手机找出来这么糊,可能是要罢工了吧。。。并且此窗口在使用期间需要一直保持)

这个时候通过ngrok的虚拟的主机地址就是:0.tcp.ngrok.io,端口号就是图中冒号后面我涂黑了的地方。

(3)使用这个穿透后的主机地址和端口来连接Linux服务器:

Linux穿Linux:

在保证openssh开启情况下,在另一台linux机器中输入:

ssh zzq(your host name)@0.tcp.ngrok.io -p*****(ngrok port number)

输入第一步设置的密码即可。

Window穿Linux:

可在windows下安装Putty:http://www.putty.org/

安装完毕后在界面中输入主机名称和端口:


再输入需要远程控制的Linux服务器的主机名字和密码:



What's  more:

如果不是校园网而是自己的路由器什么的,也可以对自己路由器进行设置得到自己的外网端口号,具体操作可以参看另一篇博客:https://blog.youkuaiyun.com/MONKEY3233/article/details/80240673

另外我还可看到很多用反向SSH来建一个外网可访问的桥梁,这个没有具体研究,先放这里,需要或者感兴趣的可以参考:

https://blog.mythsman.com/2017/01/14/1/

http://www.nat123.com/Pages_23_616.jsp

具体SSH原理是什么可以参考:

https://www.jianshu.com/p/59c4fc2684be


为了实现一片MT7996芯片作为STA(Station 模式),另一片作为AP(Access Point 模式),通过手机连接到STA模式的网络,同时确保三方能够互相Ping通的目标,以下是具体的步骤说明: --- ### 前提准备 1. 确保你的路由器搭载了两颗MT7996 Wi-Fi芯片。 2. 使用OpenWrt操作系统,熟悉`uci`命令行操作。 3. 已经有基本的路由配置知识。 --- ### 具体步骤 #### 1. 查看无线接口状态 首先运行以下命令来获取当前无线设备的状态,找到对应的无线设备ID(如`radio0`, `radio1`): ```bash uci show wireless ``` 我们假定: - `radio0`: 分配为 AP 模式; - `radio1`: 分配为 STA 模式; --- #### 2. 配置AP Mode (Access Point) 将`radio0`设置为AP模式,提供一个开放的Wi-Fi热点供其他设备连接。执行以下命令完成配置: **a) 启用设置频段:** ```bash uci set wireless.radio0.disabled=0 uci set wireless.radio0.band='5g' # 可选 '2g', '5g', 或 '6g' uci set wireless.radio0.htmode='VHT80' # 根据需求选择带宽模式 ``` **b) 添加Wi-Fi接口配置:** ```bash uci add wireless wifi-iface uci set wireless.@wifi-iface[-1].device='radio0' uci set wireless.@wifi-iface[-1].network='lan' uci set wireless.@wifi-iface[-1].mode='ap' uci set wireless.@wifi-iface[-1].ssid='My_AP_SSID' # 自定义SSID uci set wireless.@wifi-iface[-1].encryption='none' # 开启无密码访问以便测试 # 若需要加密则改为 encryption='psk2' 指定 key 参数。 ``` --- #### 3. 配置STA Mode (Station) 将`radio1`设置为STA模式,使其能够连接外部Wi-Fi信号源,这里假设你想让它连入名为“Target_SSID”的网络。 **a) 启用设置频段:** ```bash uci set wireless.radio1.disabled=0 uci set wireless.radio1.band='5g' # 匹配目标Wi-Fi所在的频段 uci set wireless.radio1.htmode='VHT80' ``` **b) 添加Wi-Fi客户端界面:** ```bash uci add wireless wifi-iface uci set wireless.@wifi-iface[-1].device='radio1' uci set wireless.@wifi-iface[-1].network='wwan' # 创建新的网络 wwan uci set wireless.@wifi-iface[-1].mode='sta' uci set wireless.@wifi-iface[-1].ssid='Target_SSID' # 替换为目标 SSID 名称 uci set wireless.@wifi-iface[-1].encryption='psk2' # 和目标网络匹配的安全协议 uci set wireless.@wifi-iface[-1].key='target_password' # 输入对应密码 ``` --- #### 4. 调整防火墙规则允许数据流通 为了让AP下的终端设备能与通过STA上网的数据包互通,需要适当调整防火墙规则。 **a) 将WWAN加入LAN区域:** 编辑 `/etc/config/firewall` ```ini config zone option name lan option network 'lann wan' ... ``` **b) 应用更改:** ```bash /etc/init.d/firewall restart ``` --- #### 5. 测试连接性 最后一步是验证所有组件是否正常运作: 1. 手机尝试接入由`radio0`提供的热点(My_AP_SSID),应该成功联网。 2. 登录路由器管理页面或SSH进入控制台检查两者IP地址分配情况,默认可能属于同一子网(如果未单独规划不同网段的话)。 3. 利用`ping`指令检测从手机到远程服务器再到本地AP节点之间的可达性。 --- ### 注意事项 - 如果涉及跨多个独立局域网(VLAN),还需要额外配置桥接和静态路由转发机制。 - 对于复杂的场景下推荐使用更专业的企业级方案而不是家用型产品来进行部署。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值