背景:A主机 内网 Windows10
B主机 外网 Linux
目标:通过B机器访问A的数据库
1.A安装Openssh
这里不得不说Windows的强大,win10已经自带了Openssh客户端,只需要安装Openssh服务端即可。
win搜索应用powershell
以管理员身份打开powershell
//输入以下命令查看本机安装状态
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
//下面是返回的输出信息,state表示是否安装,缺什么安装什么
Name : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
//Openssh客户端安装命令
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
//Openssh服务端安装命令
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
2.Openssh初始配置
Start-Service sshd
# OPTIONAL but recommended:
Set-Service -Name sshd -StartupType 'Automatic'
# Confirm the Firewall rule is configured. It should be created automatically by setup.
Get-NetFirewallRule -Name *ssh*
# There should be a firewall rule named "OpenSSH-Server-In-TCP", which should be enabled
# If the firewall does not exist, create one
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
如果22端口打开失败,把电脑的防火墙关闭就行了。
3.配置连接本机ssh
//启动ssh
net start ssh
//登录-用户名和密码是Windows的用户密码,没有的话这里需要设置一下
ssh 用户名@127.0.0.1
//按照提示输入密码
4.配置ssh反向隧道
ssh -CNR 3307:localhost:3306 root@10.10.10.10
//把A主机本地3306端口映射到远程B机的3307端口,root是B的用户名,@后是B的IP地址,第一次ssh要输入yes,然后按照提示输入B的密码
这样就可以通过B的3307端口访问A机的3306端口,实现内网穿透