首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Ubuntu 16.04源代码编译和安装dante服务器

从Ubuntu 16.04源代码编译和安装dante服务器
EN

Ask Ubuntu用户
提问于 2020-04-05 20:22:01
回答 2查看 932关注 0票数 4

用于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,并下载了:

代码语言:javascript
复制
./configure
make
make check
sudo make install

但是当我尝试danted -v时,我发现它还没有安装(也可以在/usr/bin/usr/sbin/etc/init.d下面检查)。因此,从下载的INSTALL自述文件中,我发现程序安装在/usr/local中。

代码语言:javascript
复制
$ ls /usr/local/bin
socksify
$ ls /usr/local/sbin
sockd

但正如您所看到的,它没有安装,只安装了socksify和sockd。我相信sockd是但丁服务器的依靠。

此外,我在systemctl中没有发现名为danted的服务,如何安装该服务?

configure状态:

代码语言:javascript
复制
                 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
EN

回答 2

Ask Ubuntu用户

发布于 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示例:

代码语言:javascript
复制
[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
票数 3
EN

Ask Ubuntu用户

发布于 2020-04-26 08:56:28

当您从源/tarball文件安装dante服务器时,它在sockd中以/usr/bin的形式安装二进制文件。如果愿意,可以将sockd二进制重命名为dante。如果这样做,还需要更新服务文件中的名称。

您可以在/etc/sockd.conf中配置但丁服务器。下面是示例配置。

代码语言:javascript
复制
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服务。

代码语言:javascript
复制
sudo nano /etc/systemd/system/sockd.service

将下面的内容复制到编辑器,保存并关闭它。

代码语言:javascript
复制
[Unit]
Description=Sockd Service
[Service]
Type=normal
ExecStart=/usr/local/sbin/sockd
[Install]
WantedBy=multi-user.target

您将能够启动sockd服务并在引导时启用它。

代码语言:javascript
复制
sudo systemctl start sockd
sudo systemctl enable sockd
票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1224443

复制
相关文章

相似问题

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