小编Ada*_*iss的帖子

ip_conntrack_tcp_timeout_established未应用于整个子网

我有一个nat设置,连接了数千个设备.网关的网络由eth0提供,LAN侧的设备连接到网关上的eth1.

我有iptables的以下设置:

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

eth1配置如下:

    ip: 192.168.0.1
subnet: 255.255.0.0
Run Code Online (Sandbox Code Playgroud)

为客户端分配ips 192.168.0.2到192.168.255.254.

在/etc/sysctl.conf中我为ip_conntrack_tcp_timeout_established设置了以下设置

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=1200
Run Code Online (Sandbox Code Playgroud)

由于连接到此网关的客户端设备数量,我无法使用默认的5天超时.

这似乎运行良好,并已测试超过10000客户端设备的设置.

但是,我看到的问题是tcp建立的超时1200仅适用于ip范围192.168.0.2到192.168.0.255的设备.在192.168.1.x到192.168.255.x范围内具有ips的所有设备仍在使用5天默认超时.

这会在/ proc/net/ip_conntrack表中留下太多"ESTABLISHED"连接并最终填满,即使它们应该在20分钟内超时,它们显示它们将在5天内超时.

显然我错过了某个地方的设置或者错误地配置了某些东西.

有什么建议?

谢谢

timeout iptables gateway nat subnet

7
推荐指数
1
解决办法
1万
查看次数

从StarTeam 5迁移到Subversion的策略?

我需要将一个大项目从StarTeam 5迁移到Subversion,我想保留(至少)5-10个主要版本的快照.我考虑过以下几点:

  • 手动或脚本导出/导入每个快照.优点:直观,易于选择标记/日期版本.缺点:耗时,不保留评论.
  • Polarion提供了似乎是svnimporter中的完美工具,但它需要StarTeam 8.0中的.jar文件,StarTeam 5中不存在.优点:自动化,完整.缺点:需要升级到StarTeam 8.0一次性使用.
  • 通过一些中间存储库迁移(例如 StarTeam - > CVS - > Subversion).我还没有找到任何与StarTeam合作的中间人.
  • 仅迁移最新的源.优点:简单,快速,鼓励开发人员发明新的解决方案,而不是重复历史.缺点:鼓励开发人员发明新的解决方案,而不是重复历史.:-)

我很感激您提供的任何经验或建议.谢谢.

svn migration version-control starteam

6
推荐指数
3
解决办法
4356
查看次数

敏捷的小叮当:最让人感到震惊

我们应该首先实施哪些敏捷开发的单一方面来改进我们的开发过程,为什么?

我处在一种情况,要求我"调整"我的过程,而不是重新设计它,而"敏捷"似乎是当时的口头禅.如果我们只做一个可以改进某些事物的改变 - 质量,上市时间,文档,透明度,那么最明显的积极影响是什么?

如果我们选择正确,我们将能够做出第二选择.:-)

更新: 您目前的SDLC是什么?
环境:基本上是"重启".一个的开发商屈指可数; 传统产品,10 ^ 5-10 ^ 6 LOC,全球部署数万台; 产品是相互依存的; 多年来增加的重要功能,包括许多一次性,不进行重构; 紧张的时间表; 表面质量保证; 没有验尸或"流程大师".

典型流程:

  1. 创建设计/规格.所有利益相关者审查.
  2. 编写一个或多个功能/修复程序.
  3. 修改设计/规格以解决意外情况.
  4. 测试功能,记录缺陷.
  5. 确定新任务和剩余任务的优先级.
  6. 修改设计/规格/时间表.
  7. 必要时返回步骤2.
  8. 发布测试版,记录反馈.
  9. 必要时返回步骤2.
  10. 官方发布.

感谢您提供了许多有用的建议和见解!

agile process

6
推荐指数
3
解决办法
444
查看次数

BigInteger.probablePrime()与java中的其他primality算法之间的区别

我正在使用Java实现RSA加密程序.现在我 BigInteger.probablePrime(1024, rnd)用来获得素数.这rnd是一个随机数生成的Random rnd = new Random().我需要测试各种加密速度.

我的问题是:

  1. 使用什么算法BigInteger.probablePrime(1024, rnd)

  2. 上面的算法与其他算法有什么区别:比如Rabin-Miller,Fermats,Lucas-Lehmer?

谢谢.

java encryption cryptography rsa biginteger

6
推荐指数
1
解决办法
7970
查看次数

不能访问类型为...的封闭实例

出于教育目的,我尝试创建服务器和客户端,服务器从多个客户端接收数据并回显每条消息.问题是当我尝试让服务器立即向所有客户端发送回声时.

public class SocketServer {
  ArrayList<MyRunnable> ts = new ArrayList<MyRunnable>();
  ServerSocket serv;
  static MainServerThread mst = new MainServerThread();
//                                  ^ IDE(eclipse) underlines this as the problem
  SocketServer() {
    EventQueue.invokeLater(mst);
  }

  public static void main(String[] args) { 
    Thread tr = new Thread(mst);
    tr.start();
  }

  void send(String s) {
    for (int i = 0; i < ts.size(); i++) {
      MyRunnable tmp = ts.get(i);
      tmp.sendToClient(s);
    }
  }

  class MainServerThread implements Runnable {
    public void run() {
      try {
        serv = new ServerSocket(13131);
        boolean …
Run Code Online (Sandbox Code Playgroud)

java sockets

6
推荐指数
1
解决办法
1万
查看次数

fork(),pipe()和exec()进程创建和通信

我必须编写使用创建进程的程序pipe().

我的第一个任务是编写一个父进程,使用该fork()函数生成四个子进程.

一旦fork()成功,将子进程替换为另一个进程rover1, rover2, rover3, and rover4,尽管它们都具有相同的代码.

这些过程的功能如下.

  1. 每个子进程最初都有自己的编号.它从父级接收新号码.使用以下公式,它创建自己的新数字,如下所示,并将其转发给父级:

    mynumber = (3 * mynumber + 4 * numberreceived)/7

  2. 此过程将继续,直到父级发送系统稳定的消息.父母也有其初始号码.它接收所有孩子的数量并计算其新数字,如下所示:

    mynumber = (3 * mynumber + numbers sent by all the children)/7

  3. 家长会将此号码发送给其所有孩子.此过程将继续,直到父级发现其号码不再更改为止.那时它会告诉孩子们系统已经稳定了.

这就是我所做的,但我的教授说我必须使用exec()来执行子进程并用另一个子进程替换子进程.我不知道如何使用exec().你能帮帮我吗?

我只附加了第一代儿童.

// I included stdio.h, unistd.h stdlib.h and errno.h 
int main(void)
{
  // Values returned from the four fork() calls
  pid_t rover1, rover2, rover3, rover4;

  int parentnumber, mynumber1, mynumber2, mynumber3, mynumber4;

  int childownnumber1 = 0, status = 1, …
Run Code Online (Sandbox Code Playgroud)

c operating-system fork pipe

5
推荐指数
1
解决办法
8182
查看次数

使用C/C++进行字符串格式化

最近我在接受采访时被要求将字符串"aabbbccccddddd"转换为"a2b3c4d5".目标是用一次出现和重复计数替换每个重复的字符.这里'a'在输入中重复两次,因此我们必须在输出中将其写为'a2'.另外,我需要编写一个函数来将格式反转回原始格式(例如从字符串"a2b3c4d5"到"aabbbccccddddd").我可以自由使用C或C++.我写了下面的代码,但面试官似乎对此不太满意.他让我尝试一种比这更聪明的方法.

在下面的代码中,我曾经formatstring()通过添加重复计数来消除重复的字符,并用于reverseformatstring()转换回原始字符串.

void formatstring(char* target, const char* source) {
  int charRepeatCount = 1;
  bool isFirstChar = true;
  while (*source != '\0') {
    if (isFirstChar) {
      // Always add the first character to the target
      isFirstChar = false;
      *target = *source;
      source++; target++;
    } else {
      // Compare the current char with previous one,
      // increment repeat count
      if (*source == *(source-1)) {
        charRepeatCount++;
        source++;
      } else {
        if (charRepeatCount > 1) {
          // Convert …
Run Code Online (Sandbox Code Playgroud)

c c++ visual-c++

5
推荐指数
4
解决办法
632
查看次数

OpenSSL | dgst -sha256 -hmac 与在线和java中的签名不同

我一直试图弄清楚为什么 bash 中的命令生成的签名与在线转换器以及我的 java 代码不同。

在线和Java中,value =“value”和key =“key”生成以下十六进制sha256签名:90fbfcf15e74a36b89dbdb2a721d9aecffdfdddc5c83e27f7592594f71932481

在此输入图像描述

或者

在此输入图像描述 从在线工具到我的 java 代码,这是全面的。

然而在 bash 中它会产生以下输出:

在此输入图像描述

有谁知道什么会导致这种差异?哪一个不正确或者是以不同的格式打印的?

在线转换器 1在线转换器 2

bash openssl sha256 hmac

5
推荐指数
0
解决办法
3760
查看次数

Unix/bash:读取文件列表并将它们合并到文件中

我正在试图找出一个脚本文件,它接收一个包含文件列表的文件(每行是一个文件路径,即路径/到/文件)并将它们合并到一个文件中.

例如:

list.text
--
path/to/filename
filename
Run Code Online (Sandbox Code Playgroud)

然后像这样调用脚本

merge_script.sh list.txt final_file.txt

任何帮助表示赞赏.我对bash脚本很残疾,并希望一些unix大师可以帮助我快速提出它.否则我需要几个小时来做​​正确的事(好吧,假设我做对了).我一直在寻找一些例子并把它们放在一起.到目前为止没有运气.

谢谢,杰克

unix bash merge file

4
推荐指数
1
解决办法
2993
查看次数

加密患者数据

我将使用AES_ENCRYPT()和AES_DECRYPT将患者数据存储在EMR系统中,我想知道如何存储密钥.我需要能够允许授权用户访问该密钥,以便解密和读取存储在患者记录中的数据.如何轻松与许多用户共享密钥,但保持密钥安全.任何想法或例子都表示赞赏.

encryption privacy key-management multi-user

4
推荐指数
1
解决办法
449
查看次数