Ubuntu开启ssh服务/配置ftp内网穿透/自动连接校园网
Posted zstar-_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu开启ssh服务/配置ftp内网穿透/自动连接校园网相关的知识,希望对你有一定的参考价值。
前言
想让工作电脑开启ssh服务,这样就可以在校外进行远程访问办公,电脑的系统为Ubuntu20.04
开启ssh服务
首先查看当前Ubuntu安装的SSH服务:
dpkg -l | grep ssh
Ubuntu默认只安装了ssh的客户端(openssh-client),因此想要对外提供ssh服务,必须再安装ssh服务端,可以这样进行安装:
sudo apt install openssh-server
如果产生如下报错,说明版本不适配:
下列软件包有未满足的依赖关系:
openssh-server : 依赖: openssh-client (= 1:7.6p1-4ubuntu0.7)
依赖: openssh-sftp-server 但是它将不会被安装
推荐: ssh-import-id 但是它将不会被安装
重新安装
sudo apt-get install openssh-client=1:7.6p1-4ubuntu0.7
sudo apt install openssh-server
安装好之后,再次输入查看 dpkg -l | grep ssh
:
开启ssh服务:
sudo /etc/init.d/ssh start
查询是否开启:
ps -e |grep ssh
出现sshd
说明已经开启:
输入ifconfig
查看本机ip,在服务器上去连接本机:
连接成功
内网穿透
RFC1918规定了三块专有的地址属于内网网段:
- (1)10.0.0.0 到 10.255.255.255
- (2)172.16.0.0 到172.31.255.255
- (3)192.168.0.0 到192.168.255.255
使用ifconfig
查询本机ip地址,发现属于内网,要让外网访问,需借助内网穿透。
方式一:借助云服务器进行内网穿透
内网穿透需要借助一台ip为公网的服务器,这里我正好一台闲置的阿里云服务器,因此利用它来进行frp配置。
这部分内容主要参考:https://blog.csdn.net/weixin_43922901/article/details/109261700?
服务端配置
首先将阿里云服务器系统重置为Ubuntu 20.04,并在防火墙中开启7000和7500端口(也可以换成其它的,后续要用到)
先配置服务端,下载frp_0.33.0:
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
解压frp压缩包:
tar -zxvf frp_0.33.0_linux_amd64.tar.gz
进入该解压目录:
cd frp_0.33.0_linux_amd64/
打开配置文件(注意服务端的配置文件是frps,客户端配置文件是frpc:
vim frps.ini
将文件内容修改为如下:
[common]
# frp监听的端口,默认是7000,可以改成其他的
bind_port = 7000
# 授权码,请改成更复杂的
token = 52010 # 这个token之后在客户端会用到
# frp管理后台端口,请按自己需求更改
dashboard_port = 7500
# frp管理后台用户名和密码,请改成自己的
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true
# frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3
设置和启动frp服务:
sudo mkdir -p /etc/frp
sudo cp frps.ini /etc/frp
sudo cp frps /usr/bin
sudo cp systemd/frps.service /usr/lib/systemd/system/
sudo systemctl enable frps
sudo systemctl start frps
防火墙开放两个端口:
ufw allow 7000
ufw allow 7500
ufw reload
这里再顺带补充一些防火墙的操作
注:防火墙操作均需要管理员权限
查看防火墙状态(可以看到是否开启/开启的端口号信息):
ufw status
开启防火墙:
ufw enable
添加某个端口号:
ufw allow 端口号
防火墙重启:
ufw reload
配置完之后,防火墙状态如下图所示:
验证服务端是否启动成功,访问服务器公网ip:7500
输入之前设置的用户名和密码,进入后台,说明启动成功。
到这里服务端配置完成,下面进入到客户端的配置。
客户端配置
下载frp,放在家目录下
可以和服务端的下载方式一样,这里提供百度网盘备份:
下载连接:https://pan.baidu.com/s/1JOxa6dQ1dr5VcCueu_zCZA?pwd=q7jn
解压frp压缩包:
tar -zxvf frp_0.33.0_linux_amd64.tar.gz
进入该解压目录:
cd frp_0.33.0_linux_amd64/
编辑配置文件:
vim frpc.ini
修改内容如下:
# 客户端配置
[common]
server_addr = 服务器ip
# 与frps.ini的bind_port一致
server_port = 7000
# 与frps.ini的token一致
token = 52010
tls_enable = true
# 配置ssh服务
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
# 这个自定义,之后再ssh连接的时候要用
remote_port = 6000
这里的端口号可以根据本机情况进行调整,比如6000端口有其它进程在使用,那就可以修改成其它空闲端口号,顺便补充查看端口相关命令:
查看已使用端口情况:
netstat -nultp
查询某个端口号是否被占用
# 第一种方式
netstat -anlp | grep :端口号
# 第二种方式
lsof -i:端口号
防火墙开放端口,这里操作和服务端类似
ufw allow 6000
ufw reload
客户端启动:
在frp_0.33.0_darwin_amd64目录下执行:
./frpc -c frpc.ini
出现下面提示,说明启动成功。
换外部另一台电脑尝试,注意这里访问的端口号为客户端配置的端口(6000),成功连接,说明配置成功。
配置后台运行
为了让脚本能够一直挂在后台,因此编写一个sh脚本文件frp_start.sh
:
#!/bin/bash
cd /home/zxy/frp_0.33.0/
./frpc -c frpc.ini
赋予脚本执行权限:
sudo chmod +x frp_start.sh
尝试运行脚本:
./frp_start.sh
能够正常运行
为了让脚本一直挂在后台运行,使用nohup &
的方式执行脚本:
注:nohup指不挂断地运行,&指让程序后台运行
nohup ./frp_start.sh &
打开资源监视器:
gnome-system-monitor
搜索frpc,可以看到该脚本和frpc服务正在运行,远程测试可正常连接,说明配置完成。
设置开机自启动
为了防止电脑意外重启导致服务挂掉,有必要给脚本添加到开机自启动项中。
Ubuntu设置开启自启动很简单,终端输入:
gnome-session-properties
将脚本文件添加进去即可。
方式二:借助cpolar进行内网穿透
云服务器虽然稳定方便,但是价格昂贵(续费更贵),每次换新机需要重新配置。因此有一些运行商(cpolar、花生壳…)提供了免费的公网服务器,这里以cpolar为例。
cpolar地址:https://dashboard.cpolar.com/get-started
配置起来非常方便,根据下图中的步骤下载安装即可。
下载好之后,进入cpolar文件夹:
终端输入:
./cpolar tcp 22
注:这里的端口号和本机上ssh配置的端口号需保持一致,如果是要访问本机
之后出现如下界面,就可以根据图中的ip和端口号进行ssh连接。
cpolar的免费版本的公网ip和端口号会经常变化,因此连接前需要去网站后台查看状态
和上面一样,继续配置cpolar后台运行,编写一个sh脚本文件cpolar_start.sh
:
#!/bin/bash
cd /home/zxy/cpolar/
./cpolar tcp 22
赋予脚本执行权限:
sudo chmod +x cpolar_start.sh
nohup挂载运行:
nohup ./cpolar_start.sh &
同样运行gnome-session-properties
,将脚本添加开机自启,配置完成。
还有其它方式,比如花生壳的方案,可以固定ip和端口号,不过免费版本仅有1个G的流量限制,可以应急使用。
花生壳官网配置教程:https://service.oray.com/question/11630.html
自动连接校园网
由于工作电脑连接的是校园网,每隔一段时间就需要重新登录验证校园网信息,因此有必要设定个定时脚本,让电脑自动连接校园网。
以XDU校园网为例,首先手动重连网络,弹出验证网站,在网站中进行登录验证,用F12抓包获取信息,这里不作赘述。
获得信息之后,编写python脚本如下(学号密码换成自己的):
import requests
# 1. 登录请求地址,下面是西电的登录地址
url = 'https://w.xidian.edu.cn/srun_portal_pc.php'
# 2. 登录请求发送的数据,下面是登录西电校园网所必须的字段
data =
'action': 'login',
'ac_id': '8',
"username": '学号',
"password": '密码'
# 3. 复制浏览器的请求头,下面是西电的校园网登录请求头
header =
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
"Cache-Control": "max-age=0",
"Connectin": "keep-alive",
"Host": "w.xidian.edu.cn",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36",
# 4. 以post方式发送登录请求;返回状态码为200则表示请求成功
response = requests.post(url, data, headers=header)
print("状态码:", response.status_code)
手动断网重连,然后运行脚本,返回200,并且可以上网,说明脚本执行成功。
下面添加定时任务,编写执行脚本autoconn.sh
#!/bin/bash
cd /home/zxy/script/
python autoconn.py
赋予脚本执行权限:
sudo chmod +x autoconn.sh
这里使用crontab
来执行定时命令,首先了解一些cron命令:
crontab参数:
- -u:编辑其他人的crontab,如果没有加上这个参数的话就会开启自己的crontab crontab -u 使用者名称
- -l:可以列出crontab的内容
- -r:可以移除crontab
- -e:可以使用系统预设的编辑器,开启crontab
- -i:可以移除crontab,会跳出系统信息让你再次确定是否移除crontab
常用命令:
- 重启cron:/etc/init.d/cron restart
- 查看cron:crontab -l
- 查看cron的状态(开启或关闭):service cron status
- 打开cron文件:crontab -e
- 查看cron日志:/var/log/syslog
crontab时间格式说明:
-
minute(分):可以设置0-59分
-
hour(小时):可以设置0-23小时
-
day of month(日期):可以设置1-31号
-
month(月份):可以设置1-12月
-
day of week(星期):可以设置0-7星期几,其中0和7都代表星期天,也可以使用名称来表示星期天到星期一,例如sun表示星期天,mon表示星期一
-
数值意义:
- "*"代表取值范围内的数字
- "/“代表"每”
- "-"代表从某个数字到某个数字
- ","分开几个离散的数字
下面来创建crontab:
crontab -e
输入:
30 8 * * * sh /home/zxy/script/autoconn.sh
意义为每天早上8点30分执行一次脚本
检查定时命令是否保存成功:
crontab -l
重启cron(ubuntu的cron编写完毕后,需要重启才会生效)
/etc/init.d/cron restart
至此,配置完成,可以开始远程办公。
以上是关于Ubuntu开启ssh服务/配置ftp内网穿透/自动连接校园网的主要内容,如果未能解决你的问题,请参考以下文章
Ubuntu开启ssh服务/配置ftp内网穿透/自动连接校园网