用于Ubuntu16.04的dante服务器的apt存储库已经过时(1.1版)。所以我需要从源代码编译程序并安装它,因为我不想使用不受信任的PPA。
通常当我从存储库安装时,apt install dante-server和它已经安装好了!如果您执行danted -v,它将打印版本,您可以在/etc/danted.conf中编辑但丁配置文件,重新启动danted服务并使用代理服务器!但是当我编译和安装这个程序时,它仍然不能像我所描述的那样可用。
以下是我迄今所做的工作:
我从他们的网站https://www.inet.no/dante/download.html下载了dante-1.4.2.tar.gz,并下载了:
./configure
make
make check
sudo make install但是当我尝试danted -v时,我发现它还没有安装(也可以在/usr/bin、/usr/sbin和/etc/init.d下面检查)。因此,从下载的INSTALL自述文件中,我发现程序安装在/usr/local中。
$ ls /usr/local/bin
socksify
$ ls /usr/local/sbin
sockd但正如您所看到的,它没有安装,只安装了socksify和sockd。我相信sockd是但丁服务器的依靠。
此外,我在systemctl中没有发现名为danted的服务,如何安装该服务?
configure状态:
Configure status:
Client: Enabled
Server: Enabled
Preloading: Enabled
Libwrap: Disabled, tcpd.h missing
BSD Auth: Disabled, usable bsd_auth.h not found
PAM: Disabled, security/pam_appl.h missing
GSSAPI: Not found/disabled
KRB5: Not found/disabled
SASL: Not found/disabled
UPNP: Not found/disabled
Compatability: issetugid setproctitle strlcpy strvis
Modules:
redirect: Not found
bandwidth: Not found
ldap: Not found发布于 2020-04-24 01:35:06
看起来这个二进制文件已经正确安装了--它叫做sockd。这是此二进制文件的默认名称。您可以用mv /usr/local/sbin/sockd /usr/local/sbin/danted重命名它--您可以配置它,以及配置选项(如--with-sockd-conf=FILE )的默认配置文件--这与Ubuntu中的apache2二进制文件相同。在RHEL/Fedora中,这个二进制名为httpd。
由于您已多次编辑您的问题,其中一些可能不再有意义:
手动编译/安装时,二进制文件的默认安装位置是/usr/local/bin。使用echo $PATH检查您的路径var中是否有此内容。
libscompat/timer.h是一个C头文件。
/usr/local/man/man5/socks.conf不是一个配置文件,而是一个man页面。
使用man /usr/local/man/man5/socks.conf阅读此文件的内容,您将了解如何在/etc/socks.conf中放置
您通常可以使用systemctl enable dante.service启用此功能,但您需要在/usr/lib/systemd/system/中手动创建systemd服务文件。
下面是20.04中的danted.service示例:
[Unit]
Description=SOCKS (v4 and v5) proxy daemon (danted)
Documentation=man:danted(8) man:danted.conf(5)
After=network.target
[Service]
Type=simple
PIDFile=/run/danted.pid
ExecStart=/usr/sbin/danted
ExecStartPre=/bin/sh -c ' \
uid=`sed -n -e "s/[[:space:]]//g" -e "s/#.*//" -e "/^user\\.privileged/{s/[^:]*://p;q;}" /etc/danted.conf`; \
if [ -n "$uid" ]; then \
touch /var/run/danted.pid; \
chown $uid /var/run/danted.pid; \
fi \
'
PrivateTmp=yes
InaccessibleDirectories=/boot /home /media /mnt /opt /root
ReadOnlyDirectories=/bin /etc /lib -/lib64 /sbin /usr /var
DeviceAllow=/dev/null rw
[Install]
WantedBy=multi-user.target发布于 2020-04-26 08:56:28
当您从源/tarball文件安装dante服务器时,它在sockd中以/usr/bin的形式安装二进制文件。如果愿意,可以将sockd二进制重命名为dante。如果这样做,还需要更新服务文件中的名称。
您可以在/etc/sockd.conf中配置但丁服务器。下面是示例配置。
internal: eth0 port = 3000
external: INSERT-YOUR-EXTERNAL-IP
socksmethod: none
logoutput: syslog stdout /var/log/sockd.log
client pass {
from: 0.0.0.0/0 port 1-65535 to: 0.0.0.0/0
clientmethod: none
log: connect error
}
socks pass {
from: 0.0.0.0/0 port 1-65535 to: 0.0.0.0/0
clientmethod: none
log: connect error
}通过从源代码编译安装dante服务器时,没有创建Sockd服务,但可以手动创建sockd服务。
sudo nano /etc/systemd/system/sockd.service将下面的内容复制到编辑器,保存并关闭它。
[Unit]
Description=Sockd Service
[Service]
Type=normal
ExecStart=/usr/local/sbin/sockd
[Install]
WantedBy=multi-user.target您将能够启动sockd服务并在引导时启用它。
sudo systemctl start sockd
sudo systemctl enable sockdhttps://askubuntu.com/questions/1224443
复制相似问题