首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tinyproxy:如何在Ubuntu上手动安装最新版本1.11.0?

tinyproxy:如何在Ubuntu上手动安装最新版本1.11.0?
EN

Stack Overflow用户
提问于 2022-04-02 12:16:41
回答 1查看 870关注 0票数 0

我想在Ubuntu上安装最新的tinyproxy版本1.11.0。我怎么能做到呢?

不幸的是,sudo apt update; sudo apt install tinyproxy -y;不适合我,只给了我2018年最新的稳定版本1.10.0。

因此,我尝试下载并解压缩GitHub https://github.com/tinyproxy/tinyproxy/releases上的最新版本。

但我还没能让它正常工作。

到目前为止我尝试过的:

代码语言:javascript
复制
sudo apt update;
... [loading the unzipped tinyproxy 1.11.0 folder via own GitHub repo]
cd OwnGitHubRepo/tinyproxy-1.11.0
sudo apt-get install build-essential -y
sudo apt install autoconf -y
autoconf
./configure
make
sudo make install

tinyproxy -v返回时,安装似乎一直在工作:tinyproxy 1.11.0

但是,我现在不能按照我通常会做的命令运行:

代码语言:javascript
复制
sudo /etc/init.d/tinyproxy restart;

由于存在,所以在/etc/中还没有列出tinyproxy文件夹。:/

(而且sudo lsof -i:8888还没有显示任何列表服务器)

文件:

http://tinyproxy.github.io/

在AWS EC2 UbuntuServer20.04LTS (HVM)下试用,SSD卷类型

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-03 12:00:21

  1. 确保使用最新的包

更新系统

代码语言:javascript
复制
ubuntu@ip-172-30-2-209:~$ sudo su -
root@ip-172-30-2-209:~#
代码语言:javascript
复制
root@ip-172-30-2-209:~# apt-get update
root@ip-172-30-2-209:~# apt-get dist-upgrade

如果有新内核可用,可以重新启动服务器。

代码语言:javascript
复制
root@ip-172-30-2-209:~# reboot

  1. 安装构建工具:

代码语言:javascript
复制
root@ip-172-30-2-209:~# apt-get install build-essential
root@ip-172-30-2-209:~# apt-get install autoconf

  1. 下载源代码并构建软件

代码语言:javascript
复制
root@ip-172-30-2-209:~# wget https://github.com/tinyproxy/tinyproxy/releases/download/1.11.0/tinyproxy-1.11.0.tar.bz2
root@ip-172-30-2-209:~# tar -jxvf tinyproxy-1.11.0.tar.bz2
root@ip-172-30-2-209:~# cd tinyproxy-1.11.0/
root@ip-172-30-2-209:~/tinyproxy-1.11.0# ./configure
root@ip-172-30-2-209:~/tinyproxy-1.11.0# make
root@ip-172-30-2-209:~/tinyproxy-1.11.0# make install

要跟踪的重要目录/文件:

代码语言:javascript
复制
 /usr/bin/mkdir -p '/usr/local/bin'
  /usr/bin/install -c tinyproxy '/usr/local/bin'

 /usr/bin/mkdir -p '/usr/local/share/tinyproxy'
 /usr/bin/install -c -m 644 debug.html default.html stats.html '/usr/local/share/tinyproxy'

 /usr/bin/mkdir -p '/usr/local/etc/tinyproxy'
 /usr/bin/install -c -m 644 tinyproxy.conf '/usr/local/etc/tinyproxy'

 /usr/bin/mkdir -p '/usr/local/share/man/man5'
 /usr/bin/install -c -m 644 tinyproxy.conf.5 '/usr/local/share/man/man5'

 /usr/bin/mkdir -p '/usr/local/share/man/man8'
 /usr/bin/install -c -m 644 tinyproxy.8 '/usr/local/share/man/man8'

 /usr/bin/mkdir -p '/usr/local/share/doc/tinyproxy'
 /usr/bin/install -c -m 644 AUTHORS NEWS README README.md '/usr/local/share/doc/tinyproxy'

  1. 配置软件

Symlink配置文件夹

代码语言:javascript
复制
root@ip-172-30-2-209:~/tinyproxy-1.11.0# ln -s /usr/local/etc/tinyproxy /etc/
root@ip-172-30-2-209:~/tinyproxy-1.11.0# ls -la /etc/ | grep tinyproxy
lrwxrwxrwx  1 root root         24 Apr  3 09:53 tinyproxy -> /usr/local/etc/tinyproxy

检查无人用户组

代码语言:javascript
复制
root@ip-172-30-2-209:~/tinyproxy-1.11.0# cat /etc/passwd | grep nobody
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
root@ip-172-30-2-209:~/tinyproxy-1.11.0# cat /etc/group | grep 65534
nogroup:x:65534:

由于没有人被分配给nogroup组,所以将tinyproxy配置中的group元素从无人组更改为nogroup

代码语言:javascript
复制
root@ip-172-30-2-209:~/tinyproxy-1.11.0# sed -i s/'Group nobody'/'Group nogroup'/g /etc/tinyproxy/tinyproxy.conf

将其余的tinyproxy配置为您的期望(以下是最小的设置)

代码语言:javascript
复制
root@ip-172-30-2-209:~/tinyproxy-1.11.0# cat /etc/tinyproxy/tinyproxy.conf | grep -v "^#\|^$"
User nobody
Group nogroup
Port 8888
Timeout 600
DefaultErrorFile "/usr/local/share/tinyproxy/default.html"
StatFile "/usr/local/share/tinyproxy/stats.html"
LogLevel Info
MaxClients 100
Allow 127.0.0.1
Allow ::1
ViaProxyName "tinyproxy"

测试连接

代码语言:javascript
复制
root@ip-172-30-2-209:~/tinyproxy-1.11.0# tinyproxy -d -c /etc/tinyproxy/tinyproxy.conf
NOTICE    Apr 03 09:56:13.294 [8179]: Initializing tinyproxy ...
NOTICE    Apr 03 09:56:13.294 [8179]: Reloading config file
INFO      Apr 03 09:56:13.294 [8179]: Setting "Via" header to 'tinyproxy'
NOTICE    Apr 03 09:56:13.294 [8179]: Reloading config file finished
INFO      Apr 03 09:56:13.294 [8179]: listen_sock called with addr = '(NULL)'
INFO      Apr 03 09:56:13.294 [8179]: trying to listen on host[0.0.0.0], family[2], socktype[1], proto[6]
INFO      Apr 03 09:56:13.294 [8179]: listening on fd [3]
INFO      Apr 03 09:56:13.294 [8179]: trying to listen on host[::], family[10], socktype[1], proto[6]
INFO      Apr 03 09:56:13.294 [8179]: listening on fd [4]
INFO      Apr 03 09:56:13.294 [8179]: Now running as group "nogroup".
INFO      Apr 03 09:56:13.294 [8179]: Now running as user "nobody".
INFO      Apr 03 09:56:13.294 [8179]: Setting the various signals.
INFO      Apr 03 09:56:13.294 [8179]: Starting main loop. Accepting connections.

CTRL+C

  1. 创建运行tinyproxy

的服务

代码语言:javascript
复制
root@ip-172-30-2-209:~/tinyproxy-1.11.0# nano /lib/systemd/system/tinyproxy.service
代码语言:javascript
复制
[Unit]
Description=tinyproxy service
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=nobody
Group=nogroup
ExecStart=/usr/local/bin/tinyproxy -d -c /etc/tinyproxy/tinyproxy.conf

[Install]
WantedBy=multi-user.target

  1. 启动服务并检查一切是否正常

代码语言:javascript
复制
root@ip-172-30-2-209:~/tinyproxy-1.11.0# systemctl enable tinyproxy.service
Created symlink /etc/systemd/system/multi-user.target.wants/tinyproxy.service → /lib/systemd/system/tinyproxy.service.
代码语言:javascript
复制
root@ip-172-30-2-209:~/tinyproxy-1.11.0# systemctl status tinyproxy.service
● tinyproxy.service - tinyproxy service
     Loaded: loaded (/lib/systemd/system/tinyproxy.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-04-03 10:00:20 UTC; 5s ago
   Main PID: 8236 (tinyproxy)
      Tasks: 1 (limit: 1145)
     Memory: 1.0M
     CGroup: /system.slice/tinyproxy.service
             └─8236 /usr/local/bin/tinyproxy -d -c /etc/tinyproxy/tinyproxy.conf

Apr 03 10:00:20 ip-172-30-2-209 tinyproxy[8236]: INFO      Apr 03 10:00:20.980 [8236]: Setting "Via" header to 'tinyproxy'
Apr 03 10:00:20 ip-172-30-2-209 tinyproxy[8236]: NOTICE    Apr 03 10:00:20.980 [8236]: Reloading config file finished
Apr 03 10:00:20 ip-172-30-2-209 tinyproxy[8236]: INFO      Apr 03 10:00:20.980 [8236]: listen_sock called with addr = '(NULL)'
Apr 03 10:00:20 ip-172-30-2-209 tinyproxy[8236]: INFO      Apr 03 10:00:20.980 [8236]: trying to listen on host[0.0.0.0], family[2], socktype[1], proto[6]
Apr 03 10:00:20 ip-172-30-2-209 tinyproxy[8236]: INFO      Apr 03 10:00:20.980 [8236]: listening on fd [3]
Apr 03 10:00:20 ip-172-30-2-209 tinyproxy[8236]: INFO      Apr 03 10:00:20.980 [8236]: trying to listen on host[::], family[10], socktype[1], proto[6]
Apr 03 10:00:20 ip-172-30-2-209 tinyproxy[8236]: INFO      Apr 03 10:00:20.980 [8236]: listening on fd [4]
Apr 03 10:00:20 ip-172-30-2-209 tinyproxy[8236]: INFO      Apr 03 10:00:20.980 [8236]: Not running as root, so not changing UID/GID.
Apr 03 10:00:20 ip-172-30-2-209 tinyproxy[8236]: INFO      Apr 03 10:00:20.980 [8236]: Setting the various signals.
Apr 03 10:00:20 ip-172-30-2-209 tinyproxy[8236]: INFO      Apr 03 10:00:20.980 [8236]: Starting main loop. Accepting connections.

安装net来检查侦听端口

代码语言:javascript
复制
root@ip-172-30-2-209:~/tinyproxy-1.11.0# apt-get install net-tools
代码语言:javascript
复制
root@ip-172-30-2-209:~/tinyproxy-1.11.0# netstat -napt | grep LISTEN | grep tinyproxy
tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      8236/tinyproxy
tcp6       0      0 :::8888                 :::*                    LISTEN      8236/tinyproxy
代码语言:javascript
复制
root@ip-172-30-2-209:~/tinyproxy-1.11.0# lsof -i:8888
COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
tinyproxy 8236 nobody    3u  IPv4  34119      0t0  TCP *:8888 (LISTEN)
tinyproxy 8236 nobody    4u  IPv6  34120      0t0  TCP *:8888 (LISTEN)

  1. Extras

( a)日志记录和Pid文件

准备pid和日志目录

代码语言:javascript
复制
root@ip-172-30-2-209:~/tinyproxy-1.11.0# mkdir /var/run/tinyproxy/
root@ip-172-30-2-209:~/tinyproxy-1.11.0# mkdir /var/log/tinyproxy/
root@ip-172-30-2-209:~/tinyproxy-1.11.0# chown -R nobody:nogroup /var/run/tinyproxy/
root@ip-172-30-2-209:~/tinyproxy-1.11.0# chown -R nobody:nogroup /var/log/tinyproxy/

将pid和日志参数添加到tinyproxy配置中。

代码语言:javascript
复制
root@ip-172-30-2-209:~/tinyproxy-1.11.0#
root@ip-172-30-2-209:~/tinyproxy-1.11.0# cat /etc/tinyproxy/tinyproxy.conf | grep ^LogFile
LogFile "/var/log/tinyproxy/tinyproxy.log"
root@ip-172-30-2-209:~/tinyproxy-1.11.0# cat /etc/tinyproxy/tinyproxy.conf | grep ^PidFile
PidFile "/var/run/tinyproxy/tinyproxy.pid"

重新启动服务

代码语言:javascript
复制
root@ip-172-30-2-209:~/tinyproxy-1.11.0# systemctl restart tinyproxy.service

( b)工艺限制

代码语言:javascript
复制
root@ip-172-30-2-209:~# ps aux | grep tinyproxy
nobody     64427  9.8  0.5 789836 10232 ?        Ssl  12:11   0:00 /usr/local/bin/tinyproxy -d -c /etc/tinyproxy/tinyproxy.conf
root       65436  0.0  0.0   7696   644 pts/0    S+   12:11   0:00 grep --color=auto tinyproxy
代码语言:javascript
复制
root@ip-172-30-2-209:~# cat /proc/64427/limits | grep "Max processes\|Max open files"
Max processes             7151                 7151                 processes
Max open files            1024                 524288               files

要增加这些值,请编辑/lib/systemd/system/tinyproxy.service文件,并在Service部分中添加以下行

代码语言:javascript
复制
[Service]
...
LimitNOFILE=700000
LimitNPROC=700000
...

然后重新加载系统并重新启动服务。

代码语言:javascript
复制
root@ip-172-30-2-209:~# systemctl daemon-reload
root@ip-172-30-2-209:~# systemctl restart tinyproxy.service

检查结果

代码语言:javascript
复制
root@ip-172-30-2-209:~# ps axu | grep tinyproxy
nobody     68439  0.6  0.1 533092  3068 ?        Ssl  12:13   0:00 /usr/local/bin/tinyproxy -d -c /etc/tinyproxy/tinyproxy.conf
root       68490  0.0  0.0   7696   656 pts/0    S+   12:13   0:00 grep --color=auto tinyproxy
root@ip-172-30-2-209:~# cat /proc/68439/limits | grep "Max processes\|Max open files"
Max processes             700000               700000               processes
Max open files            700000               700000               files
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71717463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档