linux的nc命令安装(linux的nc命令)-编程知识网

linux开90端口命令

用netcat命令可以打开端口

nc -l 90

为什么linux开的端口自己关闭?

一、查看哪些端口被打开 netstat -anp二、关闭端口号:iptables -A INPUT -p tcp –drop 端口号-j DROP  iptables -A OUTPUT -p tcp –dport 端口号-j DROP三、打开端口号:iptables -A INPUT -ptcp –dport 端口号-j ACCEPT四、以下是linux打开端口命令的使用方法。  nc -lp 23 &(打开23端口,即telnet)  netstat -an | grep 23 (查看是否打开23端口)五、linux打开端口命令每一个打开的端口,都需要有相应的监听程序才可以适合入门的学习途径,请阅读《Linux就该这么学》

命令行下怎样远程控制VLC播放?

开宗明义,在headless(i.e.withoutamonitororinputdevice)的服务器(例如,各类嵌入式「玩具板子」)上如果架起vlc进行多媒体播放,怎样才是最方便的控制方式?

同时,因为希望是可以脚本控制,所以最好是可以做到非互动式的指令。

如下是简单的步骤:

使能vlc的remotecontrol接口

vlc实际上拥有灵活强大的控制方式,由于我们上来就限定了headless,那么命令行显然是先决条件,vlc文档中已经列出了支持的几种remote方式:

rcinterface

ncursesinterface

telnetinterface

考虑到三者中rc应该是最强大和灵活的(ncurses需要configure,telnet更多的是互动型,何况rc本身就可以支持telnet访问),我们就focus在rc接口上。

使能方法非常简单,调用vlc的时候,用:

cvlc-irc–rc-fake-tty–rc-host

选项

意义

‘-irc’启动rc接口;

‘–rc-fake-tty’强迫将标准输入当做tty

‘–rc-host’选定的监听地址和端口

注意:如果需要局域网内访问,请填写本机ip,如果只要本机访问,用localhost就可以了

得到如下信息(忽略那些错误吧,毕竟headless么,很多接口对vlc来说都缺失,但是不影响使用)

cvlc-irc–rc-fake-tty–rc-hostlocalhost:8888

vlcmediaplayer2.0.3twoflower(revision2.0.2-93-g77aa89e)

inhibitinterfaceerror:failedtoconnecttothed-bussessiondaemon:unabletoautolaunchadbus-daemonwithouta$displayforx11

maininterfaceerror:nosuitableinterfacemodule

maininterfaceerror:nosuitableinterfacemodule

mainlibvlcerror:interface”globalhotkeys,none”initializationfailed

luainterface:listeningonhost”localhost:8888″.

rc接口指令

直接借助帮助文件,可见还是非常强大的:

+—-

|addxyz………………..addxyztoplaylist

|enqueuexyz……………..queuexyztoplaylist

|playlist………….showitemscurrentlyinplaylist

|search..searchforitemsinplaylist(orresetsearch)

|sortkey…………………sorttheplaylist

|sd………….showservicesdiscoveryortoggle

|play……………………..playstream

|stop……………………..stopstream

|next………………….nextplaylistitem

|prev………………..previousplaylistitem

|goto,gotoitem……………..gotoitematindex

|repeat…………..toggleplaylistrepeat

|loop…………….toggleplaylistloop

|random…………..toggleplaylistrandom

|clear…………………cleartheplaylist

|status……………….currentplayliststatus

|title…………..set/gettitleincurrentitem

|title_n…………….nexttitleincurrentitem

|title_p…………..previoustitleincurrentitem

|chapter…………set/getchapterincurrentitem

|chapter_n…………..nextchapterincurrentitem

|chapter_p…………previouschapterincurrentitem

|

|seekx………..seekinseconds,forinstance`seek12′

|pause……………………togglepause

|fastforward………………settomaximumrate

|rewind…………………settominimumrate

|faster………………fasterplayingofstream

|slower………………slowerplayingofstream

|normal………………normalplayingofstream

|rate……….setplaybackratetovalue

|frame…………………playframebyframe

|fullscreen,f,f…………togglefullscreen

|info………….informationaboutthecurrentstream

|stats…………….showstatisticalinformation

|get_time………secondselapsedsincestream’sbeginning

|is_playing…………1ifastreamplays,0otherwise

|get_title………….thetitleofthecurrentstream

|get_length…………thelengthofthecurrentstream

|

|volume………………set/getaudiovolume

|volup……………raiseaudiovolumexsteps

|voldown…………..loweraudiovolumexsteps

|adev……………….set/getaudiodevice

|achan……………..set/getaudiochannels

|atrack……………….set/getaudiotrack

|vtrack……………….set/getvideotrack

|vratio……………set/getvideoaspectratio

|vcrop,crop…………….set/getvideocrop

|vzoom,zoom…………….set/getvideozoom

|vdeinterlace………….set/getvideodeintelace

|vdeinterlace_mode……..set/getvideodeintelacemode

|snapshot………………..takevideosnapshot

|strack……………..set/getsubtitlestrack

|

|vlm…………………….loadthevlm

|description……………..describethismodule

|help,?……………..ahelpmessage

|longhelp…………..alongerhelpmessage

|lock………………..lockthetelnetprompt

|logout…………..exit(ifinasocketconnection)

|quit……..quitvlc(orlogoutifinasocketconnection)

|shutdown…………………..shutdownvlc

+—-

如何访问:

实际上,在一些讨论中看到,如果只是需要本机访问,更高效的办法是借助一个unixsocket文件,从而通过socket文件来访问,简单说就是将上面提到的-rc-host选项变成-rc-unix然后用一个文件作为输入;

这样可以用类似于形如下面指令的方法来模拟socket访问(作者以osx为例,应当是没有问题的):

echonormal|nc-u/users/vlc.sock

我的例子,debian中,nc似乎是不适用,更多人推荐用socat(需要安装)

echo“pause”|socat–unix-connect:/users/vlc.sock

上面可以理解成将管道化之后的echo字符向这个unix的socket发送。可是在我这里死活都会遇到文件connectionrefused,作为菜鸟,实在无力解决,特别是看到有强者遇到类似问题交叉比较得出可能和特定版本的kernelstock存在bug有关之后,不管看不看得懂,我都理直气壮的放弃了——直接转向了上面提到的host:port的方案。

所以:

osx

如果是互动式,直接nc

$nc192.168.199.1058888

vlcmediaplayer2.0.3twoflower

commandlineinterfaceinitialized.type`help’forhelp.

$status

(newinput:file:///home/user/test.mp3)

(audiovolume:256)

(stateplaying)

$info

+—-

|

|bitrate:160kb/s

|type:audio

|channels:stereo

|samplerate:44100hz

|codec:mpegaudiolayer1/2/3(mpga)

|

+—-

如果不需要互动:

参考上节:

echostatus|nc-w0

-w是指示说该命令之后,立刻退出,实际上osx下并不一定需要,只是为了和下面linux对照一下。

linux

大致相同,区别只是在非互动式下,

echostatus|nc-q0

两者区别只是一个用了’wait’之意,另外一个是’quit’罢了,想想还挺风趣….风趣个妹啊,这不是折腾跨平台用户吗?!

结论

至此,该问题解决,不论是想在远程控制无输入(显示)设备上的播放,还是想用脚本对其他线程的vlc播放进行自动化的干预控制,都不成问题了。