Articles of linux

Socat与来自多个客户端/连接的特定主机(反向shell)进行交互

我有一个线程的c / c ++应用程序,它提供了一个安装在多个linux客户机上的pty reverse shell,它们都连接到同一个服务器/端口 现在我需要find一个可靠的方法来与特定的主机交互,所以我可以例如bash脚本/以后别名。 通过使用socat我认为它应该像保持倾听,并等待特定的主机select和分叉,并与它的壳交互,closures/退出,如果它不是特定的主机,我认为这样的东西会工作 socat TCP-LISTEN:8080,fork SYSTEM:'[ $(hostname) != "host.d.com" ] && { exit;}',pty,stderr 但它不给我任何输出,我试着用一个简单的命令 socat TCP-LISTEN:8080,fork SYSTEM:'/usr/bin/id',pty,stderr 每次客户端连接时都会出现此错误 socat[1567] E write(5, 0x7faa9c802c00, 341): Input/output error 请记住,我得到了通常的shell等待input这个命令这工作正常的第一个客户端连接 socat – TCP-LISTEN:8080 我也尝试使用nmap的ncat –allow选项ncat -lvvp 8080 –keep-open –max-conns 1 –allow some ip/host但不幸的是我不能使用它,因为主机在相同的IP 那么是否有任何解决scheme,这个问题将允许我pipe理/select/与多个反向客户端shell交互,而不必为每个客户端使用不同的端口也是我保持它明白的testing,但我需要它工作在SSL这就是为什么我试图与socat和ncat 我已经看到了github上的一些python项目,但他们都是越野车和软弱

ambari + spark不能从CLI启动

从ambari GUI我们不能启动火花 所以我们要通过命令行来启动它,如下所示: [spark@mas01 spark2]$ ./sbin/start-thriftserver.sh –master yarn- client –executor-memory 512m –hiveconf hive.server2.thrift.port=10015 starting org.apache.spark.sql.hive.thriftserver.HiveThriftServer2, logging to /var/log/spark2/spark-spark- org.apache.spark.sql.hive.thriftserver.HiveThriftServer2-1- master01.octopus9.com.out 但从日志中我们得到的错误: 警告:主纱线客户端自2.0起弃用。 请改用指定部署模式的主“纱”。 请指教这个语法有什么问题? [spark@mas01 spark2]$ more /var/log/spark2/spark-spark- org.apache.spark.sql.hive.thriftserver.HiveThriftServer2-1- master01.octopus9.com.out Spark Command: /usr/jdk64/jdk1.8.0_112/bin/java -Dhdp.version=2.6.0.3-8 -cp /usr/hdp/2.6.0.3-8/spark2/conf/:/usr/hdp/2.6.0.3-8/spark2/jars/*:/usr/hdp/cu rren t/hadoop-client/conf/ -Xmx10000m org.apache.spark.deploy.SparkSubmit –master yarn-client –class org.apache.spark.sql.hive.thriftserver.HiveThriftServer2 – -name Thrift JDBC/ODBC Server –executor-memory 512m spark-internal – – hiveconf […]

让lsof显示更长的fd长度

当我检查一个可以使用超过10000个文件描述符的进程时,lsof只显示4位数。 (也就是只能显示9999) 超过10000时,以星号开头。 例如: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME a.out 29944 root 9995u IPv6 846704101 0t0 TCP 192.168.1.1:rtsp->192.168.1.2:50609 (ESTABLISHED) a.out 29944 root 9996u IPv6 846706748 0t0 TCP 192.168.1.1:rtsp->192.168.1.3:50634 (ESTABLISHED) a.out 29944 root 9997u IPv6 846708259 0t0 TCP 192.168.1.1:rtsp->192.168.1.4:50657 (ESTABLISHED) a.out 29944 root *000u IPv6 846710907 0t0 TCP 192.168.1.1:rtsp->192.168.1.5:50682 (ESTABLISHED) a.out 29944 […]

服务器达到pm.max_children设置(280),考虑提高它

PHP-FPM进程因为达到pm.max_children而每隔几天就会崩溃 ,我必须手动启动它才能build立站点。 服务器configuration: Total Memory: 7986M CPU: 2 Core 1 PHP Process Taking: 22M PHP-FPMconfiguration: pm = dynamic pm.max_children = 280 pm.start_servers = 15 pm.min_spare_servers = 15 pm.max_spare_servers = 35 pm.max_requests = 1000 检查PHP-FPM日志,发现以下错误。 [02-Aug-2017 23:23:54] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 10 […]

RHEL 6从地方读取CD; 落下

我正在使用RHEL 6.8,我已经从用户帐户中删除了auto_mountfunction。 我现在注意到,当我把CD插入机器,并点击'places'下拉菜单时,它会显示带有图标的CD。 但是,当我点击CD图标时,出现以下错误: Unable to mount <Cd Name> Not Authorized 我知道这是因为这个用户没有安装媒体的权限。 但是,我不知道我需要添加到sudoers文件中的命令,以允许用户通过下拉图标以graphics方式挂载cd。 到目前为止在/ etc / sudoers中,我已经添加了/bin/mount和/bin/umount 。 这显然没有工作,但我不知道如何进行,点击在后台运行的CD图标的命令是什么? 有没有一种方法来安全地授权用户挂载和读取cd而无需写入权限? 我已经能够添加一个完整的命令sudoers文件: mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom 而这通过命令行运行正常,但对于非Linux精明的用户这不会是直观的。 点击地点光盘图标时,我仍然遇到同样的错误。 此外,我确保用户可以访问安装和安装点的权限。 谢谢

在从较小尺寸的驱动器克隆LVM卷(不删除分区)时调整其大小

我已经使用cat将磁盘/dev/sdb /dev/sda克隆到磁盘/dev/sdb 我删除了第一个小磁盘,并从我克隆成功的启动。 接下来我想通过LVM使用所有的自由空间,我理解的步骤应该如下: 创build一个新的分区(fdisk) 将分区types更改为Linux LVM(fdisk) 用LVM初始化分区,使用: pvcreate /dev/sda3 添加新卷到LVM groupe: vgextend cl /dev/sda3 所以磁盘的结构是: 逻辑卷: root cl -wi-ao—- 1.70g swap cl -wi-ao—- 308.00m Volum集团: cl 1 2 0 wz–n- 2.00g 0 物理量: /dev/sda2 cl lvm2 a– 2.00g 0 的vgdisplay # vgdisplay — Volume group — VG Name cl System ID Format lvm2 Metadata […]

SQL DB中的Apache 2.2.4 vhost?

在Apache 2.2中有mod dbd_modules-1.0.x,它允许你在SQL数据库中pipe理虚拟主机。 在Apache 2.4中是否有相当的function?

Apache服务器代理fcgi到php服务器

我有一个运行在Ubuntu 16.04 LTS上的Apache(2.4)web服务器和一个php(7.1)服务器。 我试图build立一个木偶清单,以在Apache服务器上创build一个虚拟主机,然后每当一个PHP服务器请求被networking服务器接收,Apache服务器将代理请求到PHP服务器,然后从文档中读取请求的页面根显示请求页面。 文档根目录由web服务器和php服务器共享。 在php服务器上设置了一个php fpm池来侦听端口9001上来自apache服务器的代理请求。当我运行“puppet agent -t”时,我没有得到任何错误,并且成功创build了虚拟主机。 一旦创build了虚拟主机,然后创build一个名为info.php的php文件,但是由于某种原因,当我打开一个浏览器并在url(example.com/info.php)中键入虚拟主机名时,页。 我在做什么错了? 下面是我使用的木偶清单。 class team::vhost { #Create the base web directory and the vhosts for the wesbite file { ['/var/wwws', '/var/wwws/web']: ensure => 'directory', } #Create non-ssl vhost apache::vhost { 'example.com non-ssl': #ensure => 'absent', servername => 'example.com', serveradmin => '[email protected]', serveraliases => [ 'www.example.com', ], […]

奇怪的networking瓶颈,UDP / PPS?

我目前正在运行两个虚拟化服务器(Xenserver和Proxmox)规格: Proxmox:2个E5-2690(32个核心)128GB内存(DDR3)2个512GB固态硬盘2个10Gbps网卡,使用英特尔x520(一个用于专用networking) Xenserver:4个E7-4870(80个核心)256GB内存(DDR3)4个512GB固态硬盘3个10Gbps网卡,使用intel x520的两个端口供公众使用,一个供私人使用 每个服务器上都有一个应用程序,它可以传输大约64kpps的数据,并且可以接收100kpps的UDPstream量,总共可以下载300Mbps左右的数据,上传到互联网的速度可以达到170Mbps。 在运行应用程序之前(在任一台服务器上的虚拟机上),这些服务器到speedtest.net的速度大约为运行在pipe理程序上的5Gbps / 3Gbps。 在虚拟机上运行应用程序并生成大约300Mbps / 180Mbps的上述stream量后,虚拟机pipe理程序的速度会爬到Proxmox主机上的2.5Gbps / 700Mbps,Xenserver主机上的速度大约为200 / 200Mbps。 但是,连接到Juniper EX4550的交换机似乎没有受到300Mbpsstream量的影响,并且通过iperf的交换机的总吞吐量在应用运行时仅下降了大约400Mbps 我曾尝试在Xenserver主机上的两个公用NIC之间分割stream量,但获得了上述stream量的额外networking吞吐量的0%。 这使我相信这个问题是Linuxnetworking堆栈的一个瓶颈。 但我不确定从哪里开始进行故障排除。 谢谢 PS:链接饱和的问题也出现在专用服务器上(运行应用程序时报告2Gbps速度的服务器在运行应用程序时会导致速度下降到100 / 50Mbps),从而导致应用程序出现故障

从systemd-nspawn容器访问主机服务

我有一套由systemd-nspawnpipe理的容器。 容器应该与外部networking(半)隔离,但同时应该能够访问主机上运行的非集装箱服务,如DBMS(见图)。 networking由systemd-networkd两端pipe理。 我已经尝试了systemd-nspawn的以下最常见的专用networking模式: 虚拟以太网 -n, –network-veth为每个容器创build一对连接的虚拟以太网适配器,一个在主机端,另一个在容器内。 看起来好像没什么用处,因为不清楚DBMS应该监听哪个地址以及容器应该连接到哪个地址。 桥 –network-bridge=大致相同,但将虚拟适配器添加到指定的桥接器。 桥应该已经安装并分配了一个IP: # /etc/systemd/network/br0.netdev [NetDev] Name=br0 Kind=bridge # /etc/systemd/network/br0.network [Match] Name=br0 [Network] Address=169.254.1.1/16 这个configuration已经被certificate是可行的,但是需要额外的网桥configuration,并且在涉及容器的外部networking访问时通常是有问题的。 区 –network-zone=相同,但自动pipe理网桥接口。 以下是我们在桥上默认获得的内容: [root@host ~]# ip addr show vz-containers 26: vz-containers: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 inet 169.254.120.107/16 brd 169.254.255.255 scope link vz-containers valid_lft forever preferred_lft […]