avatar

AngYi

Aim for the stars, and beyond.

  • 首页
  • 分类
  • 标签
  • 归档
  • 相册
  • 关于我
Home 局域网无网络服务器联网解决方案
文章

局域网无网络服务器联网解决方案

Posted 2021-12-18 Updated 2023-10- 17
By AngYi
21~27 min read

局域网无网络服务器联网解决方案

1. X11转发ubuntu服务器火狐浏览器

这是我之前一直在用的方案,x11转发也比较好实现,缺点主要有:

  1. 界面很卡,浏览器登录校园网很费劲
  2. 配置麻烦,需要一个xming或者xQuartz插件
  3. 对于校园网(我们校园网一个账号只能登陆两台设备)来说,这样就需要占用一个账号了。

2. 通过本机代理服务器网络

我们的笔记本电脑如果是与服务器在一个局域网的话,是可以通过将我们的笔记本作为代理服务器的,让linux服务器走笔记本的网络,这样不仅不会占用校园网账号,还非常现代化😄

Mac 系统

SquidMan是一款Mac上的图形化的squid代理服务器的安装管理工具。使用squid服务器软件可以帮助我们实现如下功能

  • 缓存下载内容,减少网络带宽,加速网页浏览。
  • 作为代理服务器,供其他设备使用。

这里我们用到的是其代理功能。

下载地址:SquidMan | Tagline wanted, apply within.

1. 查看笔记本的IP地址,同时检验是否能够与局域网内linux互相ping通。

  1. 对于mac系统可以利用网络设置查看,也可以使用ifconfig查看IP地址:

    image-20211217230055311

  2. 对于linux,使用ifconfig查看ip:

  3. 然后在mac 终端ping一下linux的ip,在linux ssh终端ping一下笔记本的ip地址,如果是处于同一个局域网的话,应该是可以ping通的。

2. 打开SquidMan软件,设置端口

image-20211217230614273

这里我将端口设置为8089,只要没有占用即可。

在clients中将linux服务器ip写入

image-20211217230740815

然后在Template中将这些deny都设置为allow,这里应该不怕什么危险,不用的时候关闭软件即可。

image-20211217230923102

设置好之后重启软件即可。

image-20211217231103436

3. 设置linux代理

在自己用户下设置bashrc

1
vim ~./bashrc

在bashrc文件最后添加:

image-20211217231321465

然后执行source ~/.bashrc ,不出问题,应该就可以联网了

windows系统

window系统与mac类似,只不过代理软件不同而已。

  1. 下载CCProxy软件,

image-20211218152302826

  1. 打开软件,设置查看本机ip

image-20211218152354165

  1. linux ssh终端ping一下,看是否能够ping通,如果ping不通的话需要关闭windows的防火墙设置:

    image-20211218152530913

  2. ping通之后,就可以在linux设置代理了,这里详细说一下设置代理的三种方式

    1. 通过命令export临时设置代理变量,此方法只对开着的这个终端起作用,临时用一下可以

      export http_proxy="http://10.9.16.20:808"

      export https_proxy="http://10.9.16.20:808"

      //取消

      unset http_proxy

      unset https_proxy

    2. 通过修改用户文件~/.bashrc文件,此文件只对你这个用户管用,推荐用这种,设置方式同上面mac的设置方式

    3. 修改系统文件,如果你想让这个机器的所有用户都走你这个代理,可以修改系统配置文件,/etc/profile 内容就是一样的,写入代理变量

image-20211217231321465

  1. 设置完毕后,linux应该就可以通网了,这个时候可以打开CCProxy的监控,看是否走流量:

    image-20211218153120635

3. 通过终端脚本直接连校园网

第三个方法就是想着,能够通过ssh连入服务器之后终端直接模拟浏览器,填入校园网账号密码进行登录。

之所以把这个放在第三,是因为运行这个需要pyhton环境,没有网络的话搭建python环境好麻烦,还需要一些浏览器内核安装,所以可以先通过第二种方法搭建起环境,然后使用第三个方法。

那既然有了第二种方法,为什么还需要第三种方法:

有一个非常重要的应用场景,就是需要服务器一直保持联网状态,比如我们放寒假。但是校园网连接又不大稳定,这样就可以设定一个定时任务,让服务器不间断自动联网。

qust联网脚本

这里选择python的selenium库进行这个工作,配合katalon Recorder插件,很轻松能够写出这个python脚本。

下面介绍一下它的执行步骤:

在 linux 中的配置和 windows 的配置步骤一样,下面简单介绍一下。

安装 Selenum 库

使用下面的命令安装 selenium 库:

1
pip install selenium==3.14.0

安装 firefox 浏览器

firefox 下载地址:www.firefox.com.cn/download/

使用如下命令下载 linux 版本的 firefox 浏览器:

1
wget https://download-ssl.firefox.com.cn/releases/firefox/esr/91.0/zh-CN/Firefox-latest-x86_64.tar.bz2

下载完成后使用下面的命令解压得到 Firefox-latest-x86_64.tar:

1
bunzip2 -d Firefox-latest-x86_64.tar.bz2

再次使用下面的命令解压:

1
tar -xvf Firefox-latest-x86_64.tar

安装 firefox 浏览器驱动

geckodriver 驱动下载地址:github.com/mozilla/gec…

使用下面的命令下载 linux 系统的驱动:

1
wget https://github.com/mozilla/geckodriver/releases/download/v0.29.1/geckodriver-v0.29.1-linux64.tar.gz

解压 geckodriver

1
tar -zxvf geckodriver-v0.29.1-linux64.tar.gz

Python脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
from selenium import webdriver
from subprocess import run

class Qust(object):
    def __init__(self) -> None:
        super().__init__()
        self.firefox_options = webdriver.FirefoxOptions()
        # 使用headless无界面浏览器模式
        self.firefox_options.add_argument('--headless')  # 增加无界面选项
        self.firefox_options.add_argument('--disable-gpu')  # 如果不加这个选项,有时定位会出现问题

        self.executable_path = r"/home/qust-001/Chenjq/qust_login/FireFoxDrive/geckodriver"
        self.firefox_binary=r"/home/qust-001/Chenjq/qust_login/FireFox/firefox/firefox"
    
    def Login(self):
        # 打开firefox浏览器
        driver = webdriver.Firefox(
            executable_path=self.executable_path,
            firefox_binary=self.firefox_binary,
            options=self.firefox_options)

        url = "http://www.qust.edu.cn/"  # 登录网址
        Name = "2019090015"  # 账号a
        Password = "186561"  # 密码

        try:
            # 访问网址
            driver.get(url)
            driver.implicitly_wait(2)  # 隐性等待,最长等20秒
            # 输入账号
            driver.find_element_by_id("username").clear()
            driver.find_element_by_id("username").send_keys(Name)
            driver.find_element_by_xpath("//tr[@id='countTrId']/td").click()
            driver.find_element_by_id("pwd_hk_posi").click()
            driver.find_element_by_id("pwd").clear()
            driver.find_element_by_id("pwd").send_keys(Password)
            driver.find_element_by_xpath("//tr[@id='countTrId']/td").click()
            driver.find_element_by_id("selectDisname").click()
            driver.find_element_by_id("_service_0").click()
            driver.find_element_by_xpath("//a[@id='jizhummNo']/div").click()
            driver.find_element_by_xpath("//a[@id='jizhummYes']/div").click()
            driver.find_element_by_id("loginLink_div").click()
            print("登陆成功")
        except Exception as e:
            print("登陆失败", e)
        finally:
            driver.quit()
    
    def Logout(self):
        # 打开firefox浏览器
        driver = webdriver.Firefox(
                executable_path=self.executable_path,
                firefox_binary=self.firefox_binary,
                options=self.firefox_options)
        try:
            driver.get("http://211.87.158.84/")
            driver.find_element_by_id("toLogOut").click()
            alert = driver.switch_to.alert 
            alert.accept()
            print("退出账号成功")
        except Exception as e:
            print("退出账号失败",e)
        finally:
            driver.quit

if __name__ == "__main__":
    qust = Qust()
    qust.Login()
    qust.Logout()

我这里没有做太全的错误排除,我自己测试是没有问题的。

系统, 软件
linux
License:  CC BY 4.0
Share

Further Reading

Sep 18, 2024

终端复用工具tmux简介及常用快捷键

终端复用工具tmux简介及常用快捷键 tmux的Layouts基本概念: 1、服务(Server) 2、会话(Session):建立一个tmux工作区会话; 3、窗口(Window):容纳多个窗格; 4、窗格(Pane):可以在窗口中分成多个窗格。 tmux的常用快捷键 注意:在使用下面的快捷键的时

Sep 18, 2024

neovim 快速配置与极速入门

前言 最近打算入坑 neovim ,发现这玩意儿的配置过程还是很简单的,简单记录一下,免得后面忘记一些关键路径了。 我将 neovim 的本体安装,packer包管理器安装,一个基础配置写成了简单的脚本,阁下只需要直接执行这个脚本就能全自动完成配置了。 如果你对 neovim 的具体配置细节感兴趣,

Jan 16, 2024

极空间安装homeassistant 和 hacs

简介 搜了很多教程,都会出现 hacs 无法安装的问题,在淌完水之后,还是决定要写个教程。 有几个小坑,归根到底还是网络不通畅的问题,玩 ha 还是建议全局🪜 大致步骤:1. docker 拉取 homeassistant 镜像,启动容器(可能需要修改端口) 2. 初始化 homeassistan

OLDER

Python 装饰器

NEWER

Python 进阶

Recently Updated

  • DeepSeek 创始人梁文峰采访:创新、人才与中国 AI 发展
  • 福州-厦门之行
  • 我有自己的摄影网站啦
  • 借助Ollama一键本地部署CodeGeex,让AI帮你打工
  • Dash 进阶技巧

Trending Tags

ssh linux matlab 感悟 读书 blog git python flask ML

Contents

  • 1. X11转发ubuntu服务器火狐浏览器
  • 2. 通过本机代理服务器网络
    • Mac 系统
      • 1. 查看笔记本的IP地址,同时检验是否能够与局域网内linux互相ping通。
      • 2. 打开SquidMan软件,设置端口
      • 3. 设置linux代理
    • windows系统
  • 3. 通过终端脚本直接连校园网
    • qust联网脚本
      • 安装 Selenum 库
      • 安装 firefox 浏览器
      • 安装 firefox 浏览器驱动
      • Python脚本

©2025 AngYi. Some rights reserved.

Using the Halo theme Chirpy