{"slug": "hpn-ssh", "name": "HPN-SSH", "category": "networking", "category_name": "Networking and VPN", "description": "", "recommenders": 3, "commenters": 7, "warners": 1, "score": 2.408, "rising": -0.98, "first": "2025-12-06", "latest": "2026-09-10", "why": "Maybe that will be useful for thinking about workarounds or maybe you can just use hpn-ssh.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 3, "compare": 0, "warn": 1}, "spark": [0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "Maybe that will be useful for thinking about workarounds or maybe you can just use hpn-ssh.", "kind": "", "icon": true, "domain": "psc.edu", "github_repo": null, "official_url": "https://www.psc.edu/hpn-ssh-home/", "pricing": "", "aliases": ["HPN-SSH", "hpn-ssh"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 747614496, "item_id": 46725906, "url": "https://news.ycombinator.com/item?id=46725906", "by": "fragmede", "date": "2026-01-22", "stance": "recommend", "quote": "Step one, run https://www.psc.edu/hpn-ssh-home/introduction/ instead", "excerpt": "> I am working on a high-performance game that runs over ssh. Step one, run https://www.psc.edu/hpn-ssh-home/introduction/ instead Step two, tune TCP/IP stack Step... much later: write your own \"crypto\". (I'm using quotes because, before someone points out the obvious, packets-per-keystroke isn't, itself, a cryptographic algorithm, but because it's being done to protect connections from being decrypted/etc, mess with", "context": "", "use_case": "", "switched_from": "", "story": "Why does SSH send 100 packets per keystroke?"}, {"id": 741896416, "item_id": 46368526, "url": "https://news.ycombinator.com/item?id=46368526", "by": "dan-robertson", "date": "2025-12-23", "stance": "recommend", "quote": "Maybe that will be useful for thinking about workarounds or maybe you can just use hpn-ssh.", "excerpt": "Two things that can have a big impact on SSH throughput are cipher choice and the hardcoded receive buffer size. These are described in the fork https://github.com/rapier1/hpn-ssh Maybe that will be useful for thinking about workarounds or maybe you can just use hpn-ssh.", "context": "", "use_case": "High-throughput SSH", "switched_from": "", "story": "It's Always TCP_NODELAY"}, {"id": 738840208, "item_id": 46177513, "url": "https://news.ycombinator.com/item?id=46177513", "by": "r1ch", "date": "2025-12-06", "stance": "recommend", "quote": "HPN-SSH[1] resolves this but isn't widely deployed.", "excerpt": "The bottleneck with SFTP / SCP / SSH is usually the server software - SSH can multiplex streams, so it implements its own TCP-style sliding windows for channel data. Unfortunately OpenSSH and similar server implementations suffer from the exact same problems that TCP did, where the windows don't scale up to modern connection speeds, so the maximum data in-flight quickly gets limited at higher BDPs. HPN-SSH[1] resolve", "context": "", "use_case": "", "switched_from": "", "story": "Copy-Item is slower than File Explorer"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 749715073, "item_id": 46857192, "url": "https://news.ycombinator.com/item?id=46857192", "by": "digiown", "date": "2026-02-02", "stance": "warn", "quote": "I'm not so sure about running an ssh fork on important systems.", "excerpt": "Note there is no intrinsic reason running multiple streams should be faster than one. It almost always indicates some bottleneck in the application or TCP tuning. (Though, very fast links can overwhelm slow hardware, and ISPs might do some traffic shaping too, but this doesn't apply to local links). SSH was never really meant to be a high performance data transfer tool, and it shows. For example, it has a hardcoded m", "context": "", "use_case": "", "switched_from": "", "story": "4x faster network file sync with rclone (vs rsync) (2025)"}]}], "who": [], "tags": [], "use_cases": ["high-throughput ssh"], "compared": [{"slug": "openssh", "name": "OpenSSH", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=46227641", "title": "High Performance SSH/SCP", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49644955", "title": "Show HN: Syq \u2013 copy files between machines fast (better than rsync)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46820142", "title": "4x faster network file sync with rclone (vs rsync) (2025)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46723990", "title": "Why does SSH send 100 packets per keystroke?", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46359120", "title": "It's Always TCP_NODELAY", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46176904", "title": "Copy-Item is slower than File Explorer", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"recommend": 2, "neutral": 2}, "2026-01": {"recommend": 1}, "2026-02": {"warn": 1}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {"neutral": 1}, "2026-10": {}}, "quotes": [{"id": 794387936, "item_id": 49649246, "url": "https://news.ycombinator.com/item?id=49649246", "by": "ranger_danger", "date": "2026-09-10", "stance": "neutral", "quote": "unless you're using the HPN-SSH fork", "excerpt": "> I would've expected a single TCP connection to be able to saturate a line There's several factors at play that make this (usually) not the case. Besides physical latency (which includes those added by any VPNs/tunnels/etc., some of which may be internal to an ISP along the route and outside of your control), there's other things like the TCP window sizes / window scaling option[1] that can affect single stream perf", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Syq \u2013 copy files between machines fast (better than rsync)"}, {"id": 749715073, "item_id": 46857192, "url": "https://news.ycombinator.com/item?id=46857192", "by": "digiown", "date": "2026-02-02", "stance": "warn", "quote": "I'm not so sure about running an ssh fork on important systems.", "excerpt": "Note there is no intrinsic reason running multiple streams should be faster than one. It almost always indicates some bottleneck in the application or TCP tuning. (Though, very fast links can overwhelm slow hardware, and ISPs might do some traffic shaping too, but this doesn't apply to local links). SSH was never really meant to be a high performance data transfer tool, and it shows. For example, it has a hardcoded m", "context": "", "use_case": "", "switched_from": "", "story": "4x faster network file sync with rclone (vs rsync) (2025)"}, {"id": 747614496, "item_id": 46725906, "url": "https://news.ycombinator.com/item?id=46725906", "by": "fragmede", "date": "2026-01-22", "stance": "recommend", "quote": "Step one, run https://www.psc.edu/hpn-ssh-home/introduction/ instead", "excerpt": "> I am working on a high-performance game that runs over ssh. Step one, run https://www.psc.edu/hpn-ssh-home/introduction/ instead Step two, tune TCP/IP stack Step... much later: write your own \"crypto\". (I'm using quotes because, before someone points out the obvious, packets-per-keystroke isn't, itself, a cryptographic algorithm, but because it's being done to protect connections from being decrypted/etc, mess with", "context": "", "use_case": "", "switched_from": "", "story": "Why does SSH send 100 packets per keystroke?"}, {"id": 741896416, "item_id": 46368526, "url": "https://news.ycombinator.com/item?id=46368526", "by": "dan-robertson", "date": "2025-12-23", "stance": "recommend", "quote": "Maybe that will be useful for thinking about workarounds or maybe you can just use hpn-ssh.", "excerpt": "Two things that can have a big impact on SSH throughput are cipher choice and the hardcoded receive buffer size. These are described in the fork https://github.com/rapier1/hpn-ssh Maybe that will be useful for thinking about workarounds or maybe you can just use hpn-ssh.", "context": "", "use_case": "High-throughput SSH", "switched_from": "", "story": "It's Always TCP_NODELAY"}, {"id": 740682528, "item_id": 46292658, "url": "https://news.ycombinator.com/item?id=46292658", "by": "adolph", "date": "2025-12-16", "stance": "neutral", "quote": "", "excerpt": "Yeah, my naive implementation thought experiment was oriented towards a side channel brokered by the ssh connection using nginx and curl. Something like source opens nginx to share a file and tells sink via ssh to curl the file from source with a particular cert. However, I observed that curl [0] uses openssl' quic implementation (for one of its experimental implementations). Another backend for curl is Quiche [1] wh", "context": "", "use_case": "", "switched_from": "", "story": "High Performance SSH/SCP"}, {"id": 740621041, "item_id": 46288815, "url": "https://news.ycombinator.com/item?id=46288815", "by": "frantathefranta", "date": "2025-12-16", "stance": "neutral", "quote": "the patch that \"makes\" it HPN-SSH is already present upstream", "excerpt": "I admittedly don't really know how SSH is built but it looks to me like the patch that \"makes\" it HPN-SSH is already present upstream[1], it's just not applied by default? Nixpkgs seems to allow you to build the pkg with the patch [2]. [1] https://github.com/freebsd/freebsd-ports/blob/main/security/openssh-portable/files/extra-patch-hpn [2] https://github.com/NixOS/nixpkgs/blob/d85ef06512a3afbd6f90825dd8f5b6cef017bdd", "context": "", "use_case": "", "switched_from": "", "story": "High Performance SSH/SCP"}, {"id": 738840208, "item_id": 46177513, "url": "https://news.ycombinator.com/item?id=46177513", "by": "r1ch", "date": "2025-12-06", "stance": "recommend", "quote": "HPN-SSH[1] resolves this but isn't widely deployed.", "excerpt": "The bottleneck with SFTP / SCP / SSH is usually the server software - SSH can multiplex streams, so it implements its own TCP-style sliding windows for channel data. Unfortunately OpenSSH and similar server implementations suffer from the exact same problems that TCP did, where the windows don't scale up to modern connection speeds, so the maximum data in-flight quickly gets limited at higher BDPs. HPN-SSH[1] resolve", "context": "", "use_case": "", "switched_from": "", "story": "Copy-Item is slower than File Explorer"}]}