手把手 在云服务器(如腾讯云)上基于tinyproxy的服务器搭建 的过程及其遇到的问题解决

1 背景

研究生实验室用的交换机,用网线直连测试能有100M左右的速度,但当打开视频网站(如bilibili)、QQ音乐下载、steam下载时,会出现几乎是0的下载速度,故怀疑是学校方面限制了上网的环境。具体可能涉及到上网策略或是包的过滤什么的不是很懂,不过有朋友建议自己架设服务器作为代理,故有了这次尝试,也有一定的收获。

2 服务器选择

根据现实情况选择,买服务器在校外架设是不现实的,所以先在腾讯云上用学生优惠价买了一个月的轻量级云服务器试水,单核CPU 2G内存 60G硬盘 6M带宽(穷,只能将就下) centOS,如下图:

手把手 在云服务器(如腾讯云)上基于tinyproxy的服务器搭建 的过程及其遇到的问题解决_第1张图片

 3 服务器配置

和一般的Linux差不多,不过centOS是属于RedHat阵营的,所以apt得用yum代替(小白一枚,一开始还以为是不是系统不完整)。

不过在配置之前,建议先进入云服务器的控制台,我的是腾讯云所以进入的是腾讯云服务器的控制台。重置下密码好进行第三方软件的远程登录。

手把手 在云服务器(如腾讯云)上基于tinyproxy的服务器搭建 的过程及其遇到的问题解决_第2张图片

另外,还需要设置控制台的服务器防火墙,开放8888端口(或者其他不冲突的端口)。一开始因为没有在控制台开放8888端口,导致后面ping服务器通(ping端口在控制台防火墙中默认是开放了的),curl服务器不通,感觉就是防火墙的问题,在机缘巧合下发现了控制台的防火墙设置((lll¬ω¬))。

手把手 在云服务器(如腾讯云)上基于tinyproxy的服务器搭建 的过程及其遇到的问题解决_第3张图片

 把8888端口(或者其他不冲突的端口)写入开放的规则就好了。

手把手 在云服务器(如腾讯云)上基于tinyproxy的服务器搭建 的过程及其遇到的问题解决_第4张图片

之后使用重置密码后的账号和密码登录服务器,我用的是shell7,其他的诸如putty之类的应该也行。

之后就是一些软件更新和安装操作。

4 配置代理服务器

因为我是直接用root用户登录的,所以前面就不需要加sudo等操作了,而且因为是云服务器,万一删除了系统文件后也比较方便重装,所以就直接用root账户进行下列操作了。

更新软件。

yum update

安装tinyproxy,算是一个轻量级的代理服务器软件。

yum install tinyproxy

 安装包找不到可以先装这个再尝试。

yum install epel-release

使用文本编辑器修改配置参数,不过在此之前建议先备份一波原先的配置文件。

cp /etc/tinyproxy.conf /etc/tinyproxy.conf.old

使用nano编辑该文件(vim等文本编辑软件都行)

nano /etc/tinyproxy/tinyproxy.conf

 将Port行的端口号改成你需要的端口号,默认为8888端口。

手把手 在云服务器(如腾讯云)上基于tinyproxy的服务器搭建 的过程及其遇到的问题解决_第5张图片

 在Allow中添加需要进行代理的主机的公网ip,在百度中搜索 本机ip 跳出来的就是本机的公网ip。或者,将所有Allow项都使用#注释掉,即允许所有ip连接该代理服务器。

Allow项大概用“PageDown”按键按6下左右就能找到,或者直接查找也行。因为懒得打马,Allow项的图片就不展示了(( ̄▽ ̄)")。记得完成修改后使用 ctrl+x退出时选择y保存后,按回车键完成保存(其他编辑器类似)。

之后重启服务。重启、开启和停止该服务的代码如下:

# 重启tinyproxy服务
service tinyproxy restart

# 开启tinyproxy服务
service tinyproxy start

# 停止tinyproxy服务
service tinyproxy stop

为防止linux内的防火墙对端口的封锁,可以输入此语句,不输入不知道会不会有影响(●ˇ∀ˇ●)。

iptables -I INPUT -p tcp --dport 8888 -j ACCEPT

已经开启防火墙的,可能还需要如下语句(小白一枚,不太确定(⊙﹏⊙))

sudo firewall-cmd --zone=public --add-port=8888/tcp --permanent
sudo firewall-cmd --reload

在主机(本机为win10)使用命令提示符cmd(快捷键win+r后输入cmd,或直接在任务栏的搜索框中输入cmd,打开命令提示符)验证代理服务器是否就绪,其他系统也类似:

方法1:代码格式为:curl -x 服务器IP:开放的端口 httpbin.org/get

curl -x 180.123.148.125:8888 httpbin.org/get

若有返回值,说明代理服务器可以用了,像这样:

手把手 在云服务器(如腾讯云)上基于tinyproxy的服务器搭建 的过程及其遇到的问题解决_第6张图片

 方法2:同样是在cmd中,输入代码:curl ip.sb --proxy 代理服务器公网ip:端口号,即:

curl ip.sb --proxy 180.123.148.125:8888

 若返回了本机ip地址,即说明代理服务器可用。

5 使用代理服务器

5.1 浏览器使用代理服务器

本机是win10,若只是单纯的浏览器使用代理服务器上网,可以安装组件SwitchyOmega,以火狐浏览器为例。

手把手 在云服务器(如腾讯云)上基于tinyproxy的服务器搭建 的过程及其遇到的问题解决_第7张图片

 打开扩展和主题,直接在搜索框搜索SwitchyOmega并安装。

手把手 在云服务器(如腾讯云)上基于tinyproxy的服务器搭建 的过程及其遇到的问题解决_第8张图片

 之后的切换只要在按钮中选择切换就行了。

手把手 在云服务器(如腾讯云)上基于tinyproxy的服务器搭建 的过程及其遇到的问题解决_第9张图片

 5.2 系统使用代理

打开Internet选项。其中一种方法是使用win+r打开运行框,输入control打开控制面板,选择Internet选项,在连接页面中选择局域网设置。

手把手 在云服务器(如腾讯云)上基于tinyproxy的服务器搭建 的过程及其遇到的问题解决_第10张图片

 之后勾选为LAN使用代理服务器并写入代理服务器的地址和端口。

btw,在linux代理服务器中可以使用如下语句得到服务器的公网ip(或者在云服务器控制台中就有标明公网ip)。

curl icanhazip.com

手把手 在云服务器(如腾讯云)上基于tinyproxy的服务器搭建 的过程及其遇到的问题解决_第11张图片

 按下确定的那一刻,就完成了代理服务器的连接,以后不使用代理服务器的话取消勾选即可。

连接完成后,若使用浏览器时记得按那个插件小图标切换到系统代理模式,此时再在百度搜索框中输入本机ip的话,应该会跳出代理服务器的ip。

 6 一些问题和解决

6.1 代理有时会失效的问题

 遇到过代理第二天使用时失效的情况,此时重启服务器就好了,不过为了不每次重启服务器都那么麻烦,或者为了不每天手动启动服务器,干脆弄了早上自动重启服务器,并且开机启动tinyproxy服务。

6.1.1 定时重启服务器

在linux服务器端输入命令查看是否具有定时任务的库。

crontab -l

 假如说没安装报错,那就多一步,安装crontab。

yum install vixie-cron crontabs


一般不报错就说明安装过了。

设置开机启动crontab

chkconfig crond on

启动crondtab

service crond start

 开始添加定时任务。

首先,打开crontab的编辑模式。

crontab –e

 此时会进入一个类似文本编辑器的界面,而且用法很像vim.....。

按 i 进入编辑模式,将光标移到最后一行的行末时按回车进入新的一行,并输入:

05 06 * * * /sbin/reboot

 表示每天6点05分重启服务器,其他时间段也照着格式修改参数就行。

6.1.2 设置开机启动tinyproxy服务

启动Tinyproxy服务,并设置开机自启。

chkconfig --level 345 tinyproxy on
systemctl restart tinyproxy.service
systemctl enable tinyproxy.service

系统启动后,得执行一次:

service tinyproxy restart

参考

关于tinyproxy问题处理_weixin_33725807的博客-CSDN博客

使用tinyproxy进行ip代理 - Masako - 博客园

 linux的定时重启的具体命令? 非常感谢。。。_百度知道

写在最后

本人linux、网络小白,只是按照网上大佬的方法暂时完成了想要的功能,发现还不错,心血来潮就记录了一波。本来其实快要放弃了,因为ping得通,curl不通,以为学校服务器有防火墙拦截了,结果山穷水复疑无路,居然成功了。

你可能感兴趣的:(云服务器,centos,linux)