ssh到内网服务器

ssh到内网服务器

使用frp连接内网和公网服务器,这样子就能通过ssh连接到内网的服务器,设置也比较的简单。

服务器端

在服务器端下载

wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz
tar zxvf frp_0.38.0_linux_amd64.tar.gz
cd frp_0.38.0_linux_amd64

服务端的配置是frps.ini,默认绑定了7000端口

启动

./frps -c ./frps.ini

同时注意要去腾讯云开启7000的访问端口,ubuntu的防火墙也要开启7000端口,这样子外界才能连上。

sudo ufw allow 7000

客户端

同样的在客户端进行安装配置

wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz
tar zxvf frp_0.38.0_linux_amd64.tar.gz
cd frp_0.38.0_linux_amd64

客户端的配置文件在frpc.ini,不过在修改下面的文件的同时,先去看看/etc/ssh/sshd_config里面的端口,因为我的是在虚拟机内,用vnc连接的端口是映射的真实端口。比如我的真实端口是23000,虚拟机内的端口是8880,我用vnc连接的是23000,所以我frpc设置的端口是23000,死活连不上,其实不是的,因为frpc在虚拟机内运行,所以直接使用虚拟机内的端口8880,这样子才能行。

[common]
server_addr = #你的服务器的ip
server_port = 7000 #刚才服务器开启的端口

[ssh_1] #这个名字可以取不一样,如果有多台被控机子都需要,那么不能都取ssh,否则会有冲突
type = tcp
local_ip = 127.0.0.1
local_port = 8880 #本地sshd的端口
remote_port = 23001 #服务器访问的映射端口

提示:如果报错login to server failed: EOF,那么需要在[common]里面加上tls_enable = true

然后运行,要么后台运行,要么用screen,具体可以百度

./frpc -c ./frpc.ini

这样子两台机子连接就会success了,然后要去腾讯云开启23001的访问端口,ubuntu的防火墙也要开启23001端口,这样子外界才能连上。

连接

然后通过ssh命令连接,注意端口,用户名和ip。端口就是刚才设置的服务器映射端口23001,这个端口会映射到内网连上的8880端口。用户为内网的用户,但是ip是自己公网服务器的ip。

ssh -i ~/.ssh/id_rsa -p 23001 内网的用户@你的服务器ip

下面为废弃的做法

前言

因为自己的论文实验环境需要部署一个分布式环境,但是环境不在本校,在其他的内网,所以需要用ssh反向代理到公网(云服务器),我们再从公网进行访问连接。

客户端的机子直接叫C,我的公网机子叫T(腾讯云的)。

准备

首先在自己的服务器T上面创建一个新的用户,用来连接远程服务器。

创建用户

#创建用户同时设置密码
sudo adduser bju
#设置密码,上一步设置过了,这一步跳过
sudo passwd
# 下面是给用户sudo的权限,我不给了,有需要的可以给
#然后修改sudoers文件,需要先给写的权限,写完再改回来
sudo chmod u+w /etc/sudoers
#修改文件,在最下面添加 ubuntu  ALL=(ALL:ALL)
sudo vi /etc/sudoers
sudo chmod u-w /etc/sudoers

ssh连接

需要生成ssh-keygen,防止权限问题,先切到bju用户,然后生成

#切换用户,然后删除
su bju
cd
#生成秘钥
ssh-keygen
# 然后需要修改公钥的名称
mv id_rsa.pub authorized_keys

权限如下所示。

drwx------ 2 bju bju 4096 Nov  9 20:40 ./
drwxr-xr-x 4 bju bju 4096 Nov  9 20:48 ../
-rw-r--r-- 1 bju bju  571 Nov  9 20:03 authorized_keys
-rw------- 1 bju bju 2602 Nov  9 20:03 id_rsa

然后需要把id_rsa拷贝出来,因为直接拷贝文字不行,就用原来的ubuntu用户移动出来,然后通过sftp弄出来

#在ubuntu用户下,移动过来
sudo mv /home/bju/.ssh/id_rsa .
#然后所有人可读,否则弄出不来
sudo chmod a+r id_rsa
#然后通过xftp等软件可以拷贝出来了,或者直接ssh命令,但我不会
#然后删掉这个秘钥
sudo rm id_rsa

现在就能通过秘钥连接到bju用户了(麻烦死了)

ssh -i ~/.ssh/bju/bju_rsa bju@你的云服务器ip

反向代理

当然首先要先连到客户端的机子,有点尿,这里我用vnc viewer先连接到对面的树莓派,这样子就连上了内网,然后再ssh到内网的客户端C。

首先先拷贝密钥到对面的客户端C

scp -i ./id_rsa -P 23000 /home/pi/ root@162.105.159.107:/root/

由于我直接是root,所以下面的命令都不需要ssh

ssh -CfNg -R(命令行的关键) 2222(远程服务器端口):127.0.0.1:22(本地端口) -o ServerAliveInterval=60 bju@123.45.67.8(远程服务器) 
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇