Masalah dengan SCP stalling saat menyalin file melalui VPN


11

Saya memiliki serangkaian file yang perlu saya salin melalui SCP melalui VPN ke server linux jarak jauh setiap malam. File tidak besar, kita berbicara tentang puluhan megabita di sini, tetapi salinan file hampir selalu terhenti setelah beberapa detik. Menjalankan perintah SCP dengan -vvv, saya melihat hal berikut berulang-ulang selama proses penyalinan yang dicoba:

debug2: channel 0: rcvd adjust 131072
debug2: channel 0: rcvd adjust 131072
debug2: channel 0: rcvd adjust 131072

Adakah pikiran? Saya melihat pertanyaan ini ditanyakan di berbagai tempat di luar sana, tetapi tidak pernah ada jawaban. Bantuan apa pun akan dihargai.


Saya telah mengalami hal serupa berkali-kali, meskipun saya tidak memiliki apa pun yang dapat diandalkan saat ini. Mungkin menarik untuk melihat apakah hpn-ssh akan membuat perbedaan.
sfink

Jawaban:


7

Apakah Anda mengizinkan ICMP melalui VPN? "Sambungan TCP terhenti setelah beberapa detik" sering diterjemahkan menjadi " lubang hitam PMTU ".


2
sangat sedikit yang mengerti penemuan PMTU icmp :-(
The Unix Janitor

2
Kedengarannya menarik, tetapi tidak sepenuhnya jelas. Bisakah Anda menguraikan apa sebenarnya yang salah, dan bagaimana cara memperbaikinya?
Craig McQueen


1

Apakah Anda menjalankan versi terbaru dari server dan klien ssh apa pun yang Anda gunakan? Saya juga merekomendasikan untuk memukul daftar email mereka karena tampaknya agak tidak jelas.


1

Kami memiliki masalah spurios serupa dengan scp ke beberapa server Linux (Debian, 2.6.24-etchnhalf).

Kami dapat menghapus warung dengan menonaktifkan tcp_sack variabel TCP ("tcp selective acknowledgments") di server jarak jauh:

sysctl -w net.ipv4.tcp_sack=0

Di Debian, tcp_sack diaktifkan secara default. Jika saya membaca http://www.frozentux.net/ipsysctl-tutorial/chunkyhtml/tcpvariables.html , seharusnya tidak masuk akal untuk menonaktifkan opsi ini, tetapi dalam kasus kami, itu membantu.

Anda dapat membuat perubahan ini permanen dengan menambahkan baris net.ipv4.tcp_sack=0ke /etc/sysctl.conf (di sistem Linux YMMV lainnya).


0
  1. cari tahu Path MTU Anda

    ping -M do -s 1472 host.domain
    PING host.domain (10.0.0.1) 1472(1500) bytes of data.
    ping: sendmsg: Message too long
    ping: local error: Message too long, mtu=1196
    ^C
    ping -M do -s 1168 host.domain
    PING host.domain (10.0.0.1) 1168(1196) bytes of data.
    1176 bytes from 10.0.0.1: icmp_seq=1 ttl=60 time=283 ms
    ^C
    
  2. atur MTU itu untuk koneksi jaringan Anda

    ip link set eth0 mtu 1196
    

    (perhatikan bahwa ini sementara)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.