Rootop 服务器运维与web架构

2021-06-29
发表者 Venus
linux通过配置文件配置多ip已关闭评论

linux通过配置文件配置多ip

这里不采用子设备号的方式,即 ifcfg-eth0:0、ifcfg-eth0:1的配置文件方式。
通过一个配置文件方式实现多ip配置。

vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 方法1,适用于不连续ip

主ip配置略```

IPADDR1=10.10.10.10
NETMASK1=255.255.255.0

IPADDR2=10.10.10.11
NETMASK2=255.255.255.0

IPADDR和NETMASK后面的数字要排起来,中间不能有间隔。否则会失败。

# 方法2,适用于连续ip,某个范围内的ip(-range0)。
vi /etc/sysconfig/network-scripts/ifcfg-eth0-range0

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR_START=10.10.10.10
IPADDR_END=10.10.10.20
CLONENUM_START=0
GATEWAY=10.10.10.1
NETMASK=255.255.255.0
NO_ALIASROUTING=yes

CLONENUM_START=0 是 eth0:0 的意思,从0开始,下一个ip设备名就会是eth0:1

重启网络。

2021-06-28
发表者 Venus
游戏代理sk5搭建已关闭评论

游戏代理sk5搭建

比ccproxy软件稳定。
实现方式:
1、基于Linux系统 + socks5协议实现游戏代理(内外服)。
2、支持用户身份认证
3、支持每用户独享ip
4、带宽限速功能(每个用户)
单ip收费100元一次,多ip 500元一次。价格敏感者勿加。

需要的可联系我,提供完整服务端搭建方案。QQ:

2021-06-03
发表者 Venus
Linux系统错误码大全已关闭评论

Linux系统错误码大全

比如mysql里报了一个error code 13或者error code 28,那么对比这个错误码,就可以找到对应错误为权限错误、磁盘不足。

比如我这里下载了个内核源码版本linux-5.12.9
github地址:https://github.com/torvalds/linux/tree/master/include/uapi/asm-generic
1-34错误号是在内核源码下的include\uapi\asm-generic\errno-base.h
35-133错误号是在include\uapi\asm-generic\errno.h

#ifndef _ASM_GENERIC_ERRNO_BASE_H
#define _ASM_GENERIC_ERRNO_BASE_H

#define    EPERM         1     /* Operation not permitted */
#define    ENOENT        2     /* No such file or directory */
#define    ESRCH         3     /* No such process */
#define    EINTR         4     /* Interrupted system call */
#define    EIO           5     /* I/O error */
#define    ENXIO         6     /* No such device or address */
#define    E2BIG         7     /* Argument list too long */
#define    ENOEXEC       8     /* Exec format error */
#define    EBADF         9     /* Bad file number */
#define    ECHILD        10    /* No child processes */
#define    EAGAIN        11    /* Try again */
#define    ENOMEM        12    /* Out of memory */
#define    EACCES        13    /* Permission denied */
#define    EFAULT        14    /* Bad address */
#define    ENOTBLK       15    /* Block device required */
#define    EBUSY         16    /* Device or resource busy */
#define    EEXIST        17    /* File exists */
#define    EXDEV         18    /* Cross-device link */
#define    ENODEV        19    /* No such device */
#define    ENOTDIR       20    /* Not a directory */
#define    EISDIR        21    /* Is a directory */
#define    EINVAL        22    /* Invalid argument */
#define    ENFILE        23    /* File table overflow */
#define    EMFILE        24    /* Too many open files */
#define    ENOTTY        25    /* Not a typewriter */
#define    ETXTBSY       26    /* Text file busy */
#define    EFBIG         27    /* File too large */
#define    ENOSPC        28    /* No space left on device */
#define    ESPIPE        29    /* Illegal seek */
#define    EROFS         30    /* Read-only file system */
#define    EMLINK        31    /* Too many links */
#define    EPIPE         32    /* Broken pipe */
#define    EDOM          33    /* Math argument out of domain of func */
#define    ERANGE        34    /* Math result not representable */

#endif



#include <asm-generic/errno-base.h>

#define    EDEADLK        35    /* Resource deadlock would occur */
#define    ENAMETOOLONG   36    /* File name too long */
#define    ENOLCK         37    /* No record locks available */
#define    ENOSYS         38    /* Function not implemented */
#define    ENOTEMPTY      39    /* Directory not empty */
#define    ELOOP          40    /* Too many symbolic links encountered */
#define    EWOULDBLOCK    EAGAIN    /* Operation would block */
#define    ENOMSG         42    /* No message of desired type */
#define    EIDRM          43    /* Identifier removed */
#define    ECHRNG         44    /* Channel number out of range */
#define    EL2NSYNC       45    /* Level 2 not synchronized */
#define    EL3HLT         46    /* Level 3 halted */
#define    EL3RST         47    /* Level 3 reset */
#define    ELNRNG         48    /* Link number out of range */
#define    EUNATCH        49    /* Protocol driver not attached */
#define    ENOCSI         50    /* No CSI structure available */
#define    EL2HLT         51    /* Level 2 halted */
#define    EBADE          52    /* Invalid exchange */
#define    EBADR          53    /* Invalid request descriptor */
#define    EXFULL         54    /* Exchange full */
#define    ENOANO         55    /* No anode */
#define    EBADRQC        56    /* Invalid request code */
#define    EBADSLT        57    /* Invalid slot */

#define    EDEADLOCK    EDEADLK

#define    EBFONT        59    /* Bad font file format */
#define    ENOSTR        60    /* Device not a stream */
#define    ENODATA       61    /* No data available */
#define    ETIME         62    /* Timer expired */
#define    ENOSR         63    /* Out of streams resources */
#define    ENONET        64    /* Machine is not on the network */
#define    ENOPKG        65    /* Package not installed */
#define    EREMOTE       66    /* Object is remote */
#define    ENOLINK       67    /* Link has been severed */
#define    EADV          68    /* Advertise error */
#define    ESRMNT        69    /* Srmount error */
#define    ECOMM         70    /* Communication error on send */
#define    EPROTO        71    /* Protocol error */
#define    EMULTIHOP     72    /* Multihop attempted */
#define    EDOTDOT       73    /* RFS specific error */
#define    EBADMSG       74    /* Not a data message */
#define    EOVERFLOW     75    /* Value too large for defined data type */
#define    ENOTUNIQ      76    /* Name not unique on network */
#define    EBADFD        77    /* File descriptor in bad state */
#define    EREMCHG       78    /* Remote address changed */
#define    ELIBACC       79    /* Can not access a needed shared library */
#define    ELIBBAD       80    /* Accessing a corrupted shared library */
#define    ELIBSCN       81    /* .lib section in a.out corrupted */
#define    ELIBMAX       82    /* Attempting to link in too many shared libraries */
#define    ELIBEXEC      83    /* Cannot exec a shared library directly */
#define    EILSEQ        84    /* Illegal byte sequence */
#define    ERESTART      85    /* Interrupted system call should be restarted */
#define    ESTRPIPE      86    /* Streams pipe error */
#define    EUSERS        87    /* Too many users */
#define    ENOTSOCK      88    /* Socket operation on non-socket */
#define    EDESTADDRREQ  89    /* Destination address required */
#define    EMSGSIZE      90    /* Message too long */
#define    EPROTOTYPE    91    /* Protocol wrong type for socket */
#define    ENOPROTOOPT   92    /* Protocol not available */
#define    EPROTONOSUPPORT    93    /* Protocol not supported */
#define    ESOCKTNOSUPPORT    94    /* Socket type not supported */
#define    EOPNOTSUPP         95    /* Operation not supported on transport endpoint */
#define    EPFNOSUPPORT       96    /* Protocol family not supported */
#define    EAFNOSUPPORT       97    /* Address family not supported by protocol */
#define    EADDRINUSE    	  98    /* Address already in use */
#define    EADDRNOTAVAIL      99    /* Cannot assign requested address */
#define    ENETDOWN    		  100    /* Network is down */
#define    ENETUNREACH    	  101    /* Network is unreachable */
#define    ENETRESET    	  102    /* Network dropped connection because of reset */
#define    ECONNABORTED       103    /* Software caused connection abort */
#define    ECONNRESET    	  104    /* Connection reset by peer */
#define    ENOBUFS        	  105    /* No buffer space available */
#define    EISCONN        	  106    /* Transport endpoint is already connected */
#define    ENOTCONN    		  107    /* Transport endpoint is not connected */
#define    ESHUTDOWN    	  108    /* Cannot send after transport endpoint shutdown */
#define    ETOOMANYREFS       109    /* Too many references: cannot splice */
#define    ETIMEDOUT    	  110    /* Connection timed out */
#define    ECONNREFUSED       111    /* Connection refused */
#define    EHOSTDOWN   		  112    /* Host is down */
#define    EHOSTUNREACH       113    /* No route to host */
#define    EALREADY    		  114    /* Operation already in progress */
#define    EINPROGRESS    	  115    /* Operation now in progress */
#define    ESTALE        	  116    /* Stale NFS file handle */
#define    EUCLEAN        	  117    /* Structure needs cleaning */
#define    ENOTNAM        	  118    /* Not a XENIX named type file */
#define    ENAVAIL        	  119    /* No XENIX semaphores available */
#define    EISNAM        	  120    /* Is a named type file */
#define    EREMOTEIO    	  121    /* Remote I/O error */
#define    EDQUOT        	  122    /* Quota exceeded */

#define    ENOMEDIUM    	  123    /* No medium found */
#define    EMEDIUMTYPE    	  124    /* Wrong medium type */
#define    ECANCELED    	  125    /* Operation Canceled */
#define    ENOKEY        	  126    /* Required key not available */
#define    EKEYEXPIRED    	  127    /* Key has expired */
#define    EKEYREVOKED    	  128    /* Key has been revoked */
#define    EKEYREJECTED    	  129    /* Key was rejected by service */

/* for robust mutexes */
#define    EOWNERDEAD    	  130    /* Owner died */
#define    ENOTRECOVERABLE    131    /* State not recoverable */
#define ERFKILL        		  132    /* Operation not possible due to RF-kill */

#ifdef __KERNEL__

/*
 * These should never be seen by user programs. To return one of ERESTART*
 * codes, signal_pending() MUST be set. Note that ptrace can observe these
 * at syscall exit tracing, but they will never be left for the debugged user
 * process to see.
 */
#define ERESTARTSYS       	  512
#define ERESTARTNOINTR    	  513
#define ERESTARTNOHAND    	  514    /* restart if no handler.. */
#define ENOIOCTLCMD       	  515    /* No ioctl command */
#define ERESTART_RESTARTBLOCK 516 /* restart by calling sys_restart_syscall */

/* Defined for the NFSv3 protocol */
#define EBADHANDLE    		  521    /* Illegal NFS file handle */
#define ENOTSYNC    		  522    /* Update synchronization mismatch */
#define EBADCOOKIE    		  523    /* Cookie is stale */
#define ENOTSUPP    		  524    /* Operation is not supported */
#define ETOOSMALL    		  525    /* Buffer or request is too small */
#define ESERVERFAULT    	  526    /* An untranslatable error occurred */
#define EBADTYPE    		  527    /* Type not supported by server */
#define EJUKEBOX    		  528    /* Request initiated, but will not complete before timeout */
#define EIOCBQUEUED    		  529    /* iocb queued, will get completion event */
#define EIOCBRETRY    		  530    /* iocb queued, will trigger a retry */

#endif

2021-04-29
发表者 Venus
curl访问localhost不通,127.0.0.1通已关闭评论

curl访问localhost不通,127.0.0.1通

这个问题在 https://sourceforge.net/p/curl/bugs/1337/ 有说过。
原因是因为hosts中有把localhost解析成ipv6地址,curl先访问ipv6地址,不通再访问ipv4,但是curl有bug没有访问v4地址。

# 本地hosts

[root@MiWiFi-RA69-srv crm]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

# 测试

[root@MiWiFi-RA69-srv crm]# curl localhost:10080
^C
[root@MiWiFi-RA69-srv crm]# curl 127.0.0.1:10080
<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.12.2</center>
</body>
</html>

方法1,通过指定-4参数强制走v4

[root@MiWiFi-RA69-srv crm]# curl localhost:10080 -4
<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.12.2</center>
</body>
</html>

# 方法2,删掉ipv6再测试

[root@MiWiFi-RA69-srv crm]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

[root@MiWiFi-RA69-srv crm]# curl localhost:10080
<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.12.2</center>
</body>
</html>

2021-04-28
发表者 Venus
搭建游戏sk5代理服务端 游戏ip加速已关闭评论

搭建游戏sk5代理服务端 游戏ip加速

实现方式:
1、基于Linux系统 + socks5协议实现游戏代理(外服)。
2、支持用户身份认证
3、支持每用户独享ip
4、带宽限速功能(每个用户)
单ip收费100元一次,多ip 500元一次。价格敏感者勿加。

需要的可联系我,提供完整服务端搭建方案。QQ: