1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WSLでクリップボードにコピー(WSL 2でXサーバへの接続)

Last updated at Posted at 2021-05-04

WSL2でXサーバーを動かす際に、localhostの問題に加えて、Windwows defnder Filrewallの設定が必要でした。以下、作業メモです。

clip.exeを使えばよいことが判明。なんだかなとも思うけど、まぁ良いか。

ls | clip.exe

そもそもの目的

PDFをDeepLで翻訳したいときに、PDFのデータが行ごとで分割されていて、そのままでは翻訳がかけられないので、文として成り立つように行を連結する簡単なプログラムを作った。Windows上の特定のテキストファイルに保存し、WSLでコマンドを実行することでWSL上に連結した文書が表示されるので、これをコピーしてDeepLにかければ、良い感じの翻訳ができる。
しかし、だんだんWSLでのコピーが面倒になってきた。プログラムの中で、クリップボードにコピーできないかと調べてみると、xselというプログラムを使ってコピーができるようだ。

xselのインストール

以下のページなどを参考に xselとXサーバーをインストールする。
今になって気付いたが、XのコマンドだからXサーバーをインストールする必要があるのね。

Error: Can't open display

実行してみると、"Error: Can't open display"などのエラーになってしまう。調べてみると、WSL2になった際に、WSLのネットワークが Hyper-Vを使ってWindows10とは別のネットワークになったことが原因らしい。

そうか、このIPアドレスを使えばよいのか。

$ cat /etc/resolv.conf | grep nameserver | awk '{print $2}'
172.29.96.1

早速、IPアドレスを指定して接続してみるが、タイムアウトしてしまう。これは、ネットワークがつながっていないのではないかと、直接 telnetで叩いてみるとやはりタイムアウト。

telnet 172.29.96.1 6000

どういうネットワークになっているんだろうと調べたところ、こちらのページに詳しく述べられていました。

Windows defender firewallの設定

上記情報参考に、Windows側でネットワークを見てみると、WSLが使用する vEnthernet(WSL)は"プライベートネットワーク"になっていない。
image.png

それではと、Windows Defnder Firewallの"受信の規則"を見ると、VcXsvのTCPとUDPにブロックルールが書かれている。(残骸として残っているXmingが動かなかったのも、同じ理由だった模様)
image.png

ブロックしている二つのルールを"接続をブロックする"から"接続を許可する"に変更して適用。
image.png

$ telnet 172.29.96.1 6000
Trying 172.29.96.1...
Connected to 172.29.96.1.
Escape character is '^]'.
^]
telnet> quit
Connection closed.

これにより無事に、Xサーバーと通信ができるようになりました。

$ echo "Hello world!" | xsel -bi

Hello world!

調べる中で参考になったサイトなど

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?