2017-03-02 301 views
1

我的服務器只有一個ipv6地址,我的電腦可以通過這個地址直接ssh。但是當我試圖在Pycharm中的這臺服務器上添加遠程解釋器時,它會在看到ipv6地址時告訴我SFTP host is invalid如何在Pycharm中通過ipv6添加遠程解釋器?

我該如何讓它工作?謝謝!

enter image description here

更新:加括號[2001:da8:...]有助於通過主機語法檢查。但現在點擊「確定」後,Pycharm告訴我「java.net.SocketException:協議族不可用」。如何通過這個?

+0

你檢查了SSH和SFTP工作與命令行的IPv6地址? –

+0

@PenguinBrian是的,'ssh -6 the_ipv6_address'正常工作。但是Pycharm說這不是一個有效的地址,甚至不會讓我點擊OK來嘗試連接它。 – DarkZero

回答

1

最後我得到了它的工作。

首先,一個有效的IPV6 SFTP地址必須包裹在括號中。也就是說,你應該寫[2001:da8:201:1146:226:b9ff:....]而不是2001:da8:201:1146:226:b9ff:....。其次,如果你這樣做,你會發現Pycharm告訴你「java.net.SocketException:協議族不可用」並拒絕連接。這是在JDK 1.7下運行的Pycharm問題(是的,Pycharm基於Java)。爲了解決這個問題:

  1. 打開幫助|編輯自定義虛擬機選項
  2. 添加-Djava.net.preferIPv6Addresses = true在裏面。您可能還想刪除-Djava.net.preferIPv4Addresses=true,但我不確定它是否重要。
  3. 重新啓動Pycharm。

在這裏看到更多的信息:https://intellij-support.jetbrains.com/hc/en-us/articles/207241215-Network-connectivity-issues-when-running-under-Java-1-7

+0

我不得不刪除'-Djava.net.preferIPv4Addresses = true',這兩個鍵都不起作用。刪除後,這個解決方案也爲我工作。 – dimmoborgir

1

如果錯誤是從PyCharm來(從SSH反對)我會建議在~/.ssh/config創建一個別名,例如:

Host myipv6host 
HostName 2001:da8:201:1146:226:b9ff:.... 

這樣,你可以告訴pycharm連接到myipv6host,它從來沒有查看ipv6地址。

相關問題