お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2007-10-30 10:23:27

とろぴかる
メンバ
登録日: 2007-05-23

esoundでリモートPCから音声の出力を受け付けるには

esoundを使って、リモートPCで再生した音楽をローカルPCで出力したいと思います。
設定は、[システム]->[設定]->[サウンド]の画面でESDに設定して問題なく音声の出力はできます。
そこで、リモートPCでesdplayを使ってローカル側で音を出力しようとしているのですが、
どうもうまくいきません。
いろいろ調べてみるとローカルPCのTCP16001番ポートが空いていないようです。
もしかすると、デーモンを立ち上げるだけではダメで、ポートを開ける設定をすればうまくいくかもしれません。
そこで、教えていただきたいのですが、ubuntuでは、外部にポートを開ける設定はどのように行うのでしょうか。iptablesも起動しているみたいですので、その設定をする必要はありますでしょうか。
あるいは、そこではなく、inet.dの設定をする必要がありますでしょうか。
OSはDesktop版7.10で、ほぼデフォルトの状態です。
追加のファイアウォールは入れておりません。
すみませんが、よろしくお願いいたします。

オフライン

 

#2 2007-10-30 18:34:52

hito
管理者
登録日: 2007-03-18

Re: esoundでリモートPCから音声の出力を受け付けるには

iptablesは他のLinuxと同じように、iptablesコマンドで設定します。

sudo iptables -A INPUT -p tcp --dport 16001 -j ACCEPT

でどうでしょう(ってesdplayってTCP? ダメなら-p udpも足してみてください)

意図通りに設定できたら、
sudo iptables-save
してください。次回以降の起動時に自動的にiptables-restoreが呼び出され、
有効になります。

オフライン

 

#3 2007-10-31 11:31:03

とろぴかる
メンバ
登録日: 2007-05-23

Re: esoundでリモートPCから音声の出力を受け付けるには

hitoさんレスありがとうございます。
iptablesの設定を追加したのですが、それでもポートは開いていないようです。
$sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:16001
ACCEPT     udp  --  anywhere             anywhere            udp dpt:16001

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
$ nmap localhost

Starting Nmap 4.20 ( http://insecure.org ) at 2007-10-31 11:02 JST
Interesting ports on localhost (127.0.0.1):
Not shown: 1696 closed ports
PORT    STATE SERVICE
631/tcp open  ipp

Nmap finished: 1 IP address (1 host up) scanned in 0.152 seconds

esoundはTCPを使っているらしく、TCPのポートが開いていればよいみたいです。
もしかしたら、UDPも使っているかもと思ってとりあえず設定は入れてみましたが、
外部から見るとすべて閉じているように見えます。
おそらくですが、iptables以外に何か設定が必要な気がしてきました。
ちょっと調べてみます。

オフライン

 

#4 2007-10-31 11:50:31

hito
管理者
登録日: 2007-03-18

Re: esoundでリモートPCから音声の出力を受け付けるには

esdsplayを起動してないとか無いですよね?

サーバ側で lsof -i | grep 16001 すると何か出てきますか?

オフライン

 

#5 2007-10-31 15:39:12

とろぴかる
メンバ
登録日: 2007-05-23

Re: esoundでリモートPCから音声の出力を受け付けるには

hitoさんレスありがとうございます。
結果から申しますと、できるようになりました。
原因は、esdの起動方法にありました。
サーバ側で[システム]->[設定]->[サウンド]の指定でesdを指定すればできると思っていたのですが、
そうではなかったようです。
[システム]->[設定]->[サウンド]の指定は自動検出にしておいて、次のコマンドでデーモンを立ち上げます。
esd -as 2 -tcp -public &
次にリモート側からesdplayを実行します。
esdplay -s [サーバのIPアドレス] [ファイル名]
そうすると再生できました。

iptablesを疑ってしまったのですが、
特に設定をしなくても大丈夫でした。
nmapを使ってTCPのポートの確認をしたのも混乱した原因でした。
リモートからnmapを使ってもポートは開いていないように見えるのですが、
実際には通信は可能です。
サーバ側でlsof -i | grep 16001をしますと
esd     5861 user_name    3u  IPv6  27992       TCP *:16001 (LISTEN)
このように出てきます。
iptablesがデフォルトでどうなっているのはいまいちよくわからないのですが、
まあ、外からは見えないけれど、通信はできているので問題はないと言えばないのですが、
不思議ですね。
何はともあれ、解決しましたので、いろいろありがとうございました。

オフライン

 

#6 2007-10-31 16:01:54

hito
管理者
登録日: 2007-03-18

Re: esoundでリモートPCから音声の出力を受け付けるには

ええと、外から見えないのではなく、nmapがデフォルトでは
16001を見ないのが原因です。

nmapはオプションが与えられない場合、/usr/share/nmap/nmap-servicesに
あるポートしか見に行きません。
そして、ここには16001は含まれていないので、nmap target とやると
スルーされます。

nmap -A target すると、16001が空いているのが見えると思います。

オフライン

 

#7 2007-10-31 18:26:40

とろぴかる
メンバ
登録日: 2007-05-23

Re: esoundでリモートPCから音声の出力を受け付けるには

hitoさんありがとうございます。
たしかにそうでした。
nmapのデフォルトでは16001までは見ていないようです。
次のようにすると見れました。
$ nmap -A -p 1-20000 localhost

Starting Nmap 4.20 ( http://insecure.org ) at 2007-10-31 18:18 JST
Interesting ports on localhost (127.0.0.1):
Not shown: 19998 closed ports
PORT      STATE SERVICE      VERSION
631/tcp   open  ipp          CUPS 1.2
16001/tcp open  kerberos-sec Microsoft Windows kerberos-sec
Service Info: OS: Windows

Service detection performed. Please report any incorrect results at http://insecure.org/nmap/submit/ .
Nmap finished: 1 IP address (1 host up) scanned in 29.445 seconds

実際にはkerberosではないのですが、開いていることは確認できます。
お騒がせしてすみませんでした。
また、ご指摘ありがとうございました。

オフライン

 

Board footer

Powered by FluxBB