最近从GitHub学生包白嫖了digitalocean的200刀乐优惠券,速速去又租了一台服务器学习学习,然并卵因种种因素闲置了下来,暂时记录一下拿它整过的幺蛾子。
首先是代理服务器的尝试,(虽然在之前考虑过将其作为yunzai Bot的后续部署平台,但emmmm,代理服务器对我真的真的很重要好吧)
原参考一位使用tinyproxy一键部署的教程已经不可考,因此再次主动搜集tinyproxy相关并尝试理解原理(代理服务器和VPN还是有差距的?)
本次搜集的参考文章解锁服务器外联:TinyProxy一键搭建指南
引言
在服务器需要访问外网的情况下,由于网络安全等原因,许多生产服务器限制了对外网的访问。本文介绍如何通过在一台能够访问外网的服务器上部署TinyProxy来实现代理,使得其他服务器可以通过该代理访问外网。
在这里我就已经产生一些疑问了,TinyProxy使用的代理方式是什么?HTTP和HTTPS代理又意味着什么。
安装
Linux服务器下,使用如下命令
1 | sudo apt-get update |
在这里我没有去尝试yum
rpm
等命令行包管理器(才不是因为不会),你也不想yum:commnd no found
吧。
配置文件
这一步,在安装完成后,需要配置TinyProxy以满足特定需求。首先,编辑配置文件`/etc/tinyproxy.conf``:(需要对Linux有一定的了解,vim编辑器了解一下亲)
1 | Port 8888 # 代理port,默认是8888, 可以改成任何自己想要的 |
有时修改完配置后仍然无法正常连接,可能会出现500错误。(虽然我没有遇到)
该问题的解决办法是DNS问题,这个地方卡住一会儿,在该文件/etc/resolv.conf
末尾增加:
1 | nameserver 8.8.8.8 |
好了一会儿后续该文件又恢复原状,找到原因是由于这个文件是由systemd-resolved服务管理的,不应该手动编辑。systemd-resolved是systemd的一部分,它负责处理DNS解析和名称解析。这个服务会自动处理DNS服务器的添加、删除和重新排序,以及域名的搜索列表。
为了避免可能的配置冲突或服务无法正确启动的问题,systemd-resolved通常会覆盖手动编辑/etc/resolv.conf文件的内容。因此,即使手动编辑了这个文件,一旦systemd-resolved服务重启,它会重新应用自己的配置。
更改DNS服务器或域名搜索列表,应该使用systemd-resolved提供的配置文件/etc/systemd/resolved.conf。这样的更改会在systemd-resolved服务重启时被正确应用。
1 | [Resolve] |
在更改后,使用以下命令重启systemd-resolved服务以应用更改:
1 | sudo systemctl restart systemd-resolved |
启动,重启,停止
运行以下命令完成启动,重启,停止
1 | service tinyproxy start/restart/stop |
测试
对于要通过代理访问外网的每台机器,需要在网络设置或系统级代理配置中指定代理服务器地址和端口。
其实在这里我就产生疑惑了,这是我的代理服务器需要做这些还是说这是我的目的机所需要完成的,比如 Windows11网络和Internet > 代理 中的设置代理服务器,然而如果直接启用,会导致我的电脑无法访问任何外部链接,应该是哪一步骤理解错了。
1 | export HTTP_PROXY=http://your-proxy-server:8888 |
或者,可以在 /etc/profile
或 ~/.bashrc
文件中添加这些设置。
然后就可以在该服务器上运行
后话
1.(该方法并不能解决需求)查阅了相关文章,Ubuntu上安装tinyproxy搭建HTTP代理服务器,这位竞然是通过局域网连接的
2.使用todesk(竟然能见到老熟人)
能Ping通为什么会连接失败呢???
结果:连接失败
1.apt-get是什么?
apt-get
是一个在基于Debian的Linux发行版中使用的命令行包管理器。它用于安装、升级、卸载和管理软件包。apt-get
命令通常在 dpkg
包管理器的基础上工作,dpkg
是Debian及其派生发行版中用于安装和卸载软件包的底层系统。
以下是一些常用的 apt-get
命令:
- 安装软件包:
sudo apt-get install package_name
- 更新软件包列表:
sudo apt-get update
- 升级所有已安装的软件包:
sudo apt-get upgrade
- 搜索软件包:
apt-get search package_name
- 列出软件包信息:
apt-cache show package_name
- 卸载软件包:
sudo apt-get remove package_name
在使用apt-get
时,通常需要使用sudo
来获取超级用户权限,因为管理软件包通常需要对系统进行更改。
请注意,apt-get
是一个非常强大和常用的工具,但在使用时需要谨慎,尤其是在自动化的脚本中或进行系统维护时,因为不正确的使用可能会导致系统不稳定或软件包依赖性问题。