Làm thế nào tôi có thể có được ddclient để làm việc với freedns?


8

Tôi sử dụng dịch vụ DNS động tại freedns.afston.org cho máy chủ 12.04 của mình. Tôi đã giả định rằng các giao thức sẽ được chuẩn hóa và ddclient sẽ chỉ hoạt động, nhưng dường như không. Tôi nhận được thông báo này trong / var / log / syslog:

ERROR: Invalid update URL (2): unexpected status ()

Tôi đã thử sử dụng phiên bản cập nhật của ddclient từ PPA thay thế được mô tả trong câu trả lời này , nhưng sau đó tôi gặp phải lỗi này:

FATAL:    Error loading the Perl module Digest::SHA1 needed for freedns update.
FATAL:     On Debian, the package libdigest-sha1-perl must be installed.

Và khi tôi cố gắng cài đặt gói đó, tôi nhận được điều này:

E: Unable to locate package libdigest-sha1-perl

Điều này dẫn tôi đến báo cáo lỗi này , dường như không có giải pháp. Làm thế nào để tiến hành?



Có vẻ như lỗi đã được sửa trong 3.8.2 , ddclient hiện hoạt động tốt với các phần mềm được giải phóng khỏi hộp.
jesjimher

Câu trả lời:


11

Cho đến khi ddclient được sửa , bạn có thể tự cài đặt mô-đun cũ mà nó muốn:

sudo apt-get install cpanminus
cpanm --sudo Digest::SHA1

Trang khách hàng DNS miễn phíddclient --helpcung cấp các cấu hình ddclient mẫu. Khởi động lại ddclient để các thay đổi có hiệu lực:

sudo service ddclient restart

Tôi thích điều này để hack ddclient chính nó, cảm ơn.
Rob Fisher

3

Tôi đã có thể khiến FreeDNS hoạt động bằng cách chỉnh sửa hai dòng này trong /usr/sbin/ddclient:

Từ:

my $sha1_loaded = eval {require Digest::SHA1};

Đến:

my $sha1_loaded = eval {require Digest::SHA};

Từ:

import  Digest::SHA1 (qw/sha1_hex/);

Đến:

import Digest::SHA (qw/sha1_hex/);

2

Một nhận xét trong báo cáo lỗi cho thấy rằng "dễ dàng thay đổi chương trình để sử dụng Digest :: SHA thay vì Digest :: SHA1".

Vì vậy, các bước đầy đủ là, đầu tiên, bởi vì add-apt-repository không được cài đặt theo mặc định:

sudo apt-get install python-software-properties

Sau đó, như được mô tả bởi izx:

sudo apt-add-repository ppa:nathan-renniewaldock/ppa

Bây giờ, kho lưu trữ này chứa nhiều gói, nhưng chúng tôi chỉ muốn ddclient. Vì vậy, tạo một tệp tùy chọn, chẳng hạn như `/etc/apt/preferences.d/nathan-prefs và chỉnh sửa nó để trông như thế này:

Package: *
Pin: release o=LP-PPA-nathan-renniewaldock
Pin-Priority: 400

Package: ddclient
Pin: release o=LP-PPA-nathan-renniewaldock
Pin-Priority: 500

Bây giờ cài đặt ddclient:

sudo apt-get update && sudo apt-get install ddclient

Bây giờ, trở thành root và chỉnh sửa / usr / sbin / ddclient. Hãy tìm require Digest::SHA1và thay thế nó bằng require Digest::SHA. Sau đó tìm import Digest::SHA1một vài dòng sau và thay thế nó bằng import Digest::SHA.

Cuối cùng, mở /etc/ddclient.conf và làm cho nó trông giống như thế này (lưu ý giao thức):

daemon=3600
protocol=freedns
use=if, if=eth0
ssl=yes
use=web, web=myip.dnsomatic.com
server=freedns.afraid.org
login=username
password='password'
mydomain.example.com

Điều chính tôi không hài lòng là hack một tệp và phá vỡ quản lý gói của Ubuntu. Một giải pháp tốt hơn sẽ là cố định PPA.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.