Php 因此,使用curl--interface或CURLOPT_interface
以非root用户身份运行此命令: curl——接口tun0-v SO_BINDTODEVICE tun0失败,错误号为1:不允许操作; 我会做常规绑定 在php中设置Php 因此,使用curl--interface或CURLOPT_interface,php,linux,curl,networking,Php,Linux,Curl,Networking,以非root用户身份运行此命令: curl——接口tun0-v SO_BINDTODEVICE tun0失败,错误号为1:不允许操作; 我会做常规绑定 在php中设置curl\u setopt($ch,CURLOPT\u接口“tun0”)也不起作用。但是, ping-I tun0 google.com 效果很好,所以这只是卷曲的问题。它甚至可以对root用户使用curl,但它确实应该对非root用户有效 我有一个openpvn接口tun0,但同样的事情发生在lo接口上 这种情况发生在多个系统上,
curl\u setopt($ch,CURLOPT\u接口“tun0”)
也不起作用。但是,
ping-I tun0 google.com
效果很好,所以这只是卷曲的问题。它甚至可以对root用户使用curl,但它确实应该对非root用户有效
我有一个openpvn接口tun0
,但同样的事情发生在lo
接口上
这种情况发生在多个系统上,那么--interface选项是在curl中被破坏了,还是应该以其他方式使用它?我是否应该为curl启用一些特殊功能以使用该接口?我认为您没有正确解释详细的消息 curl的
--interface
选项要求它将套接字的本地端绑定到特定的IP/网络接口
绑定套接字是通过正常的bind()
调用完成的
除了bind()调用之外,linux还提供了SO_BINDTODEVICE
setsockopt选项,这是一种更好、更完整的接口绑定。但是,这个调用需要根用户访问才能工作,而大多数使用libcurl的应用程序都不具备根用户访问权限,然后在详细输出中出现上述文本时就会失败
因此,套接字的本地绑定即使在存在该消息的情况下也能工作。它只是没有工作到SO_BINDTODEVICE级别