2017-03-02 66 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地址。

相关问题