【Ubuntu】开启ssh服务/配置frp内网穿透/自动连接校园网

前言

想让工作电脑开启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

至此,配置完成,可以开始远程办公。

  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
要在Ubuntu上使用frp进行内网穿透,你可以按照以下步骤进行操作: 1. 首先,你需要从frp的官方网站下载适用于Linux的安装包。***``` 2. 下载完成后,你可以使用tar命令解压文件,如下所示: ``` $ tar -xzvf frp_0.38.0_linux_amd64.tar.gz ``` 3. 解压完成后,将文件移动到/usr/local目录下,并重命名文件夹名称,可以使用以下命令: ``` $ mv ./frp_0.38.0_linux_amd64 /usr/local/frp ``` 4. 接下来,你需要进入/usr/local/frp目录,使用以下命令: ``` $ cd /usr/local/frp ``` 5. 在该目录下,你可以编辑配置文件以适应你的需求。配置文件的名称为frps.ini(服务器端)和frpc.ini(客户端)。你可以使用任何文本编辑器打开并编辑这些文件。 6. 编辑完成后,你可以启动frp服务。如果是服务器端,可以使用以下命令启动: ``` $ ./frps -c frps.ini ``` 如果是客户端,可以使用以下命令启动: ``` $ ./frpc -c frpc.ini ``` 这样,你就可以在Ubuntu上使用frp进行内网穿透了。详细的配置信息和更多功能,请参考frp官方文档。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [在iPad上连接虚拟机中的ubuntu系统 - 使用frp内网穿透实现在外办公](https://blog.csdn.net/Proprieter_sz/article/details/122023985)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zstar-_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值