ฉันจะทำให้ ddclient ทำงานกับ freedns ได้อย่างไร


8

ฉันใช้บริการ DNS แบบไดนามิกที่ freedns.afraid.org สำหรับเซิร์ฟเวอร์ 12.04 ของฉัน ฉันสันนิษฐานว่าโปรโตคอลจะเป็นมาตรฐานและ ddclient นั้นจะทำงานได้ แต่ดูเหมือนจะไม่ ฉันได้รับข้อความนี้ใน / var / log / syslog:

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

ฉันพยายามใช้ ddclient รุ่นปรับปรุงจาก PPA ทางเลือกที่อธิบายไว้ในคำตอบนี้แต่แล้วฉันก็พบข้อผิดพลาดนี้:

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

และเมื่อฉันพยายามติดตั้งแพ็คเกจฉันได้รับสิ่งนี้:

E: Unable to locate package libdigest-sha1-perl

ซึ่งทำให้ฉันไปที่รายงานข้อผิดพลาดนี้ซึ่งเห็นได้ชัดว่าไม่มีวิธีแก้ปัญหา จะดำเนินการอย่างไร



ดูเหมือนว่าข้อผิดพลาดได้รับการแก้ไขใน 3.8.2ตอนนี้ ddclient ทำงานได้ดีกับ freedns ออกจากกล่อง
jesjimher

คำตอบ:


11

จนกว่า ddclient จะได้รับการแก้ไขคุณสามารถติดตั้งโมดูลเก่าที่ต้องการ:

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

ฟรีหน้าลูกค้า DNSและddclient --helpให้ตัวอย่างการกำหนดค่า ddclient รีสตาร์ท ddclient เพื่อให้การเปลี่ยนแปลงมีผล:

sudo service ddclient restart

ฉันชอบที่จะแฮ็ก ddclient ตัวเองขอบคุณ
Rob Fisher

3

ฉันสามารถทำให้ FreeDNS ทำงานได้โดยเพียงแค่แก้ไขสองบรรทัดนี้ใน/usr/sbin/ddclient:

จาก:

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

ถึง:

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

จาก:

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

ถึง:

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

2

ความคิดเห็นในรายงานข้อผิดพลาดให้เห็นว่ามันคือ "ง่ายต่อการเปลี่ยนโปรแกรมเพื่อใช้ Digest :: SHA แทน Digest :: SHA1"

ดังนั้นขั้นตอนแบบเต็มคืออันดับแรกเนื่องจาก add-apt-repository ไม่ได้ติดตั้งตามค่าเริ่มต้น:

sudo apt-get install python-software-properties

จากนั้นตามที่อธิบายโดย izx:

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

ตอนนี้ที่เก็บนี้มีหลายแพ็คเกจ แต่เราต้องการเพียง ddclient ดังนั้นให้สร้างไฟล์การกำหนดค่าตามความชอบเช่น `/etc/apt/preferences.d/nathan-prefs และแก้ไขมันให้มีลักษณะดังนี้:

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

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

ตอนนี้ติดตั้ง ddclient:

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

ตอนนี้กลายเป็นรูทและแก้ไข / usr / sbin / ddclient มองหาและแทนที่ด้วยrequire Digest::SHA1 require Digest::SHAแล้วมองหาไม่กี่บรรทัดต่อมาและแทนที่ด้วยimport Digest::SHA1import Digest::SHA

ในที่สุดให้เปิด /etc/ddclient.conf และทำให้มันเป็นแบบนี้ (จดบันทึกโปรโตคอล):

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

สิ่งสำคัญที่ฉันไม่พอใจคือแฮ็คไฟล์และทำลายการจัดการแพ็คเกจของ Ubuntu ทางออกที่ดีกว่าคือการแก้ไข PPA


-1

คุณสามารถรับได้จาก: libdigest-sha1-perl

คุณอาจต้องติดตั้งlibio-socket-ssl-perlด้วย ตรวจสอบ syslog ของคุณ


N: ไม่สามารถค้นหาแพ็คเกจ libdigest-sha1-perl
Konstigt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.