ToB企服应用市场:ToB评测及商务社交产业平台
标题:
腾讯云服务器之ssh远程毗连登录及转发映射端口实现内网穿透(实现服务器访
[打印本页]
作者:
汕尾海湾
时间:
2024-8-14 13:22
标题:
腾讯云服务器之ssh远程毗连登录及转发映射端口实现内网穿透(实现服务器访
一、创建密钥绑定实例
创建密钥会自动下载一个私钥,把这个私钥复制到c盘
二、设置私钥权限
1、删除所有效户权限
2、添加当前用户权限
检察当前用户名
echo %USERNAME%
复制代码
如果更改了密钥要实行下面代码
ssh-keygen -R 175.xxx.xxx.154
复制代码
三、ssh远程毗连到服务器
ssh ubuntu@175.xxx.xxx.112 -i C:\Crack\cs2.pem
复制代码
四、修改root暗码
sudo passwd root
su root
复制代码
五、端口转发(实现服务器访问当地电脑的端口)
当地电脑cmd实行
ssh -R 8080:127.0.0.1:8080 ubuntu@175.xxx.xxx.154 -i C:\Crack\cs2.pem # 访问服务器的本地端口,即是访问本地电脑的端口
# 或者
# ssh -L 8080:127.0.0.1:8080 ubuntu@175.xxx.xxx.154 -i C:\Crack\cs2.pem # 访问本地电脑的端口,即是访问服务器localhost的端口
复制代码
linux实行访问命令
curl http://127.0.0.1:8080/sign
复制代码
可以看到输出了我在当地电脑搭建的网络响应内容
检察端口绑定信息,linux实行
netstat -tnlp4 | grep 8080
复制代码
可以看到绑定的只是服务器的当地端口,别人访问服务器公网ip肯定访问不了
六、实现公网ip访问当地电脑http服务(即别人通过服务器公网ip即访问你当地电脑网络服务)
先退出上面端口转发,登录服务器linux实行
su
vim /etc/ssh/sshd_config
复制代码
找到这个并取消解释改为yes
服务器linux实行命令,重启sshd服务(或者重启服务器也行)
systemctl stop sshd
systemctl start sshd
复制代码
打开cmd实行
ssh -R 8080:127.0.0.1:8080 ubuntu@175.xxx.xxx.154 -i C:\Crack\cs2.pem
# ssh -f -N -R 8080:127.0.0.1:8080 root@175.xxx.xxx.154 -i C:\altk.pem # 后台运行,即关闭cmd窗口也可以
复制代码
netstat -tnlp4 | grep 8080
复制代码
可以看到绑定了0.0.0.0地址,即别人可以通过公网ip访问到你当地电脑的http服务(记得腾讯云后台防火墙打开端口)
七、ssh保持长毗连
sudo vim /etc/ssh/sshd_config
复制代码
修改下面这两个
ClientAliveInterval 60 #server每隔60秒发送一次请求给client,然后client响应,从而保持连接
ClientAliveCountMax 999999999 #server发出请求后,客户端没有响应得次数达到999999999,就自动断开连接,正常情况下,client不会不响应
复制代码
八、设置若ssh毗连断开则自动重连(包管ssh长期稳固)
新建一个ssh-tunnel.ps1文件,内里内容如下,若服务器内网穿透的端口无法访问则大概ssh断开毗连了,则需要重连
while ($true) {
Write-Host "start run!"
$url = "http://175.xxx.xxx.154:8080/sign"
$flag = 0
try {
$response = Invoke-WebRequest -Uri $url -Method Head -ErrorAction Stop -TimeoutSec 3
Write-Host "request success! $($response.StatusCode)"
} catch {
Write-Host "request fail! $url"
$flag = 1
}
if ($flag) {
Write-Host "ssh connect..."
ssh -R 8080:127.0.0.1:8080 ubuntu@175.xxx.xxx.154 -i C:\tk.pem
Write-Host "ssh connect closed!"
}
Start-Sleep 6 # 设置重连时间
}
复制代码
powershell管理员实行ssh-tunnel.ps1文件即可
./ssh-tunnel.ps1
复制代码
需要一直打开powershell窗口
使用下面代码也可以
$maxRetries = 10
$retryCount = 0
while ($retryCount -lt $maxRetries) {
try {
Write-Host "Start connect..."
ssh -R 8080:127.0.0.1:8080 ubuntu@175.xxx.xxx.154 -i C:\tk.pem
$retryCount = 0
} catch {
Write-Host "Connection failed!"
$retryCount++
}
Start-Sleep -Seconds 10 # 重连等待10秒
}
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4